From ae39c6cb382b8fd7b067cd2fb503411f2fdf3cb1 Mon Sep 17 00:00:00 2001 From: zjwegert <60646897+zjwegert@users.noreply.github.com> Date: Wed, 10 Apr 2024 16:51:56 +1000 Subject: [PATCH] Rename stencil in scripts --- compile/warmup.jl | 4 +-- .../tutorials/minimum_thermal_compliance.md | 26 +++++++++---------- scripts/Benchmarks/benchmark.jl | 16 ++++++------ scripts/MPI/3d_elastic_compliance_ALM.jl | 4 +-- scripts/MPI/3d_hyperelastic_compliance_ALM.jl | 4 +-- .../3d_hyperelastic_compliance_neohook_ALM.jl | 4 +-- scripts/MPI/3d_inverse_homenisation_ALM.jl | 4 +-- scripts/MPI/3d_inverter_ALM.jl | 4 +-- scripts/MPI/3d_inverter_HPM.jl | 4 +-- .../3d_nonlinear_thermal_compliance_ALM.jl | 4 +-- scripts/MPI/3d_thermal_compliance_ALM.jl | 4 +-- scripts/MPI/elastic_compliance_ALM.jl | 4 +-- scripts/MPI/inverse_homenisation_ALM.jl | 4 +-- scripts/MPI/thermal_compliance_ALM.jl | 4 +-- scripts/MPI/thermal_compliance_ALM_PETSc.jl | 4 +-- scripts/Serial/elastic_compliance_ALM.jl | 4 +-- scripts/Serial/elastic_compliance_HPM.jl | 4 +-- scripts/Serial/elastic_compliance_LM.jl | 4 +-- scripts/Serial/hyperelastic_compliance_ALM.jl | 4 +-- .../hyperelastic_compliance_neohook_ALM.jl | 4 +-- scripts/Serial/inverse_homenisation_ALM.jl | 4 +-- scripts/Serial/inverter_ALM.jl | 4 +-- scripts/Serial/inverter_HPM.jl | 4 +-- .../nonlinear_thermal_compliance_ALM.jl | 4 +-- scripts/Serial/thermal_compliance_ALM.jl | 4 +-- .../thermal_compliance_ALM_higherorderlsf.jl | 4 +-- .../_dev/3d_hyperelastic_compliance_ALM.jl | 2 +- .../_dev/Paper_scripts/elast_comp_MPI_3D.jl | 4 +-- .../Paper_scripts/hyperelast_comp_MPI_3D.jl | 4 +-- .../_dev/Paper_scripts/inverse_hom_MPI_3D.jl | 4 +-- scripts/_dev/Paper_scripts/inverter_MPI_3D.jl | 4 +-- scripts/_dev/Paper_scripts/therm_comp_MPI.jl | 4 +-- .../_dev/Paper_scripts/therm_comp_MPI_3D.jl | 4 +-- .../_dev/Paper_scripts/therm_comp_serial.jl | 4 +-- .../MPI_benchmark_test_2D_themal.jl | 4 +-- .../MPI_benchmark_test_3D_themal.jl | 4 +-- .../benchmark_tests/serial_benchmark_test.jl | 4 +-- scripts/_dev/bug_issue_46/thermal_MPI.jl | 4 +-- scripts/_dev/bug_issue_46/thermal_serial.jl | 4 +-- scripts/_dev/full_piezo_script.jl | 4 +-- scripts/_dev/inv_hom_block_assem_testing.jl | 2 +- .../inv_hom_block_assem_testing_3D_MPI.jl | 4 +-- ...inv_hom_block_assem_testing_full_script.jl | 4 +-- scripts/_dev/mem_leak.jl | 4 +-- scripts/_dev/nonlinear_adjoint_MWE.jl | 2 +- ...nimum_thermal_compliance_implementation.jl | 4 +-- ...um_thermal_compliance_implementation_3d.jl | 4 +-- ...rmal_compliance_implementation_3d_petsc.jl | 4 +-- ..._compliance_implementation_3d_petsc_mpi.jl | 4 +-- ...mal_compliance_implementation_nonlinear.jl | 4 +-- test/seq/ThermalComplianceALMTests.jl | 4 +-- 51 files changed, 116 insertions(+), 116 deletions(-) diff --git a/compile/warmup.jl b/compile/warmup.jl index 70adbc03..c2b6e5e3 100644 --- a/compile/warmup.jl +++ b/compile/warmup.jl @@ -70,7 +70,7 @@ function main(mesh_partition,distribute) dJ = (q,u,φ,dΩ,dΓ_N) -> ∫((ξ-D*∇(u)⋅∇(u))*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ; ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,Δ./order,max_steps,tol) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,Δ./order,max_steps,tol) reinit!(stencil,φ,γ_reinit) ## Setup solver and FE operators @@ -84,7 +84,7 @@ function main(mesh_partition,distribute) ## Optimiser _conv_cond = t->LevelSetTopOpt.conv_cond(t;coef=1/50); - optimiser = AugmentedLagrangian(φ,pcfs,stencil,vel_ext,interp,el_size,γ,γ_reinit,conv_criterion=_conv_cond); + optimiser = AugmentedLagrangian(φ,pcfs,ls_evo,vel_ext,interp,el_size,γ,γ_reinit,conv_criterion=_conv_cond); for history in optimiser it,Ji,_,_ = last(history) print_history(it,["J"=>Ji];ranks=ranks) diff --git a/docs/src/tutorials/minimum_thermal_compliance.md b/docs/src/tutorials/minimum_thermal_compliance.md index 0839f6e7..3d52db3c 100644 --- a/docs/src/tutorials/minimum_thermal_compliance.md +++ b/docs/src/tutorials/minimum_thermal_compliance.md @@ -346,7 +346,7 @@ Both of these equations can be solved numerically on a Cartesian mesh using a fi ```julia # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) -stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) +ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) ``` In the above we first build an object [`FirstOrderStencil`](@ref) that represents a finite difference stencil for a single step of the Hamilton-Jacobi evolution equation and reinitialisation equation. We use `length(el_size)` to indicate the dimension of the problem. We then create an [`HamiltonJacobiEvolution`](@ref) which enables finite differencing on order `O` finite elements in serial or parallel. The [`HamiltonJacobiEvolution`](@ref) object provides two important methods [`evolve!`](@ref) and [`reinit!`](@ref) that correspond to solving the Hamilton-Jacobi evolution equation and reinitialisation equation, respectively. @@ -357,7 +357,7 @@ We may now create the optimiser object. This structure holds all information reg ```julia # Optimiser -optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) +optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) ``` As optimisers inheriting from [`LevelSetTopOpt.Optimiser`](@ref) implement Julia's iterator functionality, we can solve the optimisation problem to convergence by iterating over the optimiser: @@ -461,9 +461,9 @@ a_hilb(p,q) =∫(α^2*∇(p)⋅∇(q) + p*q)dΩ vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) -stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) +ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser -optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) +optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) # Solve for (it,uh,φh) in optimiser data = ["phi"=>φh,"H(phi)"=>(H ∘ φh),"|nabla(phi)|"=>(norm ∘ ∇(φh)),"uh"=>uh] @@ -604,9 +604,9 @@ a_hilb(p,q) =∫(α^2*∇(p)⋅∇(q) + p*q)dΩ vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) -stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) +ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser -optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) +optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) # Solve for (it,uh,φh) in optimiser data = ["phi"=>φh,"H(phi)"=>(H ∘ φh),"|nabla(phi)|"=>(norm ∘ ∇(φh)),"uh"=>uh] @@ -754,9 +754,9 @@ function main() ) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) # Solve for (it,uh,φh) in optimiser data = ["phi"=>φh,"H(phi)"=>(H ∘ φh),"|nabla(phi)|"=>(norm ∘ ∇(φh)),"uh"=>uh] @@ -827,7 +827,7 @@ We then adjust lines 28-31 as follows: The function `i_am_main` returns true only on the first processor. This function is useful for ensuring certain operations only happen once instead of several times across each executable. In addition, we now create a partitioned Cartesian model using `CartesianDiscreteModel(ranks,mesh_partition,dom,el_size)`. Finally, we adjust line 82 to ensure that verbosity only happens on the first processors: ```julia -optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; +optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=i_am_main(ranks),constraint_names=[:Vol]) ``` @@ -918,9 +918,9 @@ function main(mesh_partition,distribute) ) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=i_am_main(ranks),constraint_names=[:Vol]) # Solve for (it,uh,φh) in optimiser @@ -1070,9 +1070,9 @@ a_hilb(p,q) =∫(α^2*∇(p)⋅∇(q) + p*q)dΩ vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) -stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) +ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser -optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) +optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) # Solve for (it,uh,φh) in optimiser data = ["phi"=>φh,"H(phi)"=>(H ∘ φh),"|nabla(phi)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/Benchmarks/benchmark.jl b/scripts/Benchmarks/benchmark.jl index 759bf6e0..862262d7 100644 --- a/scripts/Benchmarks/benchmark.jl +++ b/scripts/Benchmarks/benchmark.jl @@ -102,9 +102,9 @@ function nl_elast(mesh_partition,ranks,el_size,order,verbose) ) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - return AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose) + return AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose) end function therm(mesh_partition,ranks,el_size,order,verbose) @@ -180,9 +180,9 @@ function therm(mesh_partition,ranks,el_size,order,verbose) ) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - return AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose) + return AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose) end function elast(mesh_partition,ranks,el_size,order,verbose) @@ -256,9 +256,9 @@ function elast(mesh_partition,ranks,el_size,order,verbose) ) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - return AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose) + return AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose) end function inverter_HPM(mesh_partition,ranks,el_size,order,verbose) @@ -329,7 +329,7 @@ function inverter_HPM(mesh_partition,ranks,el_size,order,verbose) UΓ_out(u,φ,dΩ,dΓ_in,dΓ_out) = ∫((u⋅-e₁-δₓ)/vol_Γ_out)dΓ_out ## Finite difference solver - stencil = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators Tm = SparseMatrixCSR{0,PetscScalar,PetscInt} @@ -355,7 +355,7 @@ function inverter_HPM(mesh_partition,ranks,el_size,order,verbose) ) ## Optimiser - return HilbertianProjection(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose=verbose) + return HilbertianProjection(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose=verbose) end with_mpi() do distribute diff --git a/scripts/MPI/3d_elastic_compliance_ALM.jl b/scripts/MPI/3d_elastic_compliance_ALM.jl index d44fdff3..558d05d8 100644 --- a/scripts/MPI/3d_elastic_compliance_ALM.jl +++ b/scripts/MPI/3d_elastic_compliance_ALM.jl @@ -81,7 +81,7 @@ function main(mesh_partition,distribute,el_size) dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators Tm = SparseMatrixCSR{0,PetscScalar,PetscInt} @@ -107,7 +107,7 @@ function main(mesh_partition,distribute,el_size) ) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=i_am_main(ranks),constraint_names=[:Vol]) for (it, uh, φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/MPI/3d_hyperelastic_compliance_ALM.jl b/scripts/MPI/3d_hyperelastic_compliance_ALM.jl index c103beab..6cd67d04 100644 --- a/scripts/MPI/3d_hyperelastic_compliance_ALM.jl +++ b/scripts/MPI/3d_hyperelastic_compliance_ALM.jl @@ -83,7 +83,7 @@ function main(mesh_partition,distribute,el_size) dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators Tm = SparseMatrixCSR{0,PetscScalar,PetscInt} @@ -110,7 +110,7 @@ function main(mesh_partition,distribute,el_size) ) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=i_am_main(ranks),constraint_names=[:Vol]) for (it, uh, φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/MPI/3d_hyperelastic_compliance_neohook_ALM.jl b/scripts/MPI/3d_hyperelastic_compliance_neohook_ALM.jl index 1a9fe02e..8ad44dc4 100644 --- a/scripts/MPI/3d_hyperelastic_compliance_neohook_ALM.jl +++ b/scripts/MPI/3d_hyperelastic_compliance_neohook_ALM.jl @@ -97,7 +97,7 @@ function main(mesh_partition,distribute,el_size) dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators Tm = SparseMatrixCSR{0,PetscScalar,PetscInt} @@ -124,7 +124,7 @@ function main(mesh_partition,distribute,el_size) ) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=i_am_main(ranks),constraint_names=[:Vol]) for (it, uh, φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/MPI/3d_inverse_homenisation_ALM.jl b/scripts/MPI/3d_inverse_homenisation_ALM.jl index 2fed57d8..1746a942 100644 --- a/scripts/MPI/3d_inverse_homenisation_ALM.jl +++ b/scripts/MPI/3d_inverse_homenisation_ALM.jl @@ -85,7 +85,7 @@ function main(mesh_partition,distribute,el_size) dVol(q,u,φ,dΩ) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators Tm = SparseMatrixCSR{0,PetscScalar,PetscInt} @@ -111,7 +111,7 @@ function main(mesh_partition,distribute,el_size) ) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=i_am_main(ranks),constraint_names=[:Vol]) for (it, uh, φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh))] diff --git a/scripts/MPI/3d_inverter_ALM.jl b/scripts/MPI/3d_inverter_ALM.jl index 5d270952..4fa6ee26 100644 --- a/scripts/MPI/3d_inverter_ALM.jl +++ b/scripts/MPI/3d_inverter_ALM.jl @@ -99,7 +99,7 @@ function main(mesh_partition,distribute,el_size) UΓ_out(u,φ,dΩ,dΓ_in,dΓ_out) = ∫((u⋅-e₁-δₓ)/vol_Γ_out)dΓ_out ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators Tm = SparseMatrixCSR{0,PetscScalar,PetscInt} @@ -125,7 +125,7 @@ function main(mesh_partition,distribute,el_size) ) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=i_am_main(ranks),constraint_names=[:Vol,:UΓ_out]) for (it, uh, φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/MPI/3d_inverter_HPM.jl b/scripts/MPI/3d_inverter_HPM.jl index f1684cf0..3aacbfe1 100644 --- a/scripts/MPI/3d_inverter_HPM.jl +++ b/scripts/MPI/3d_inverter_HPM.jl @@ -99,7 +99,7 @@ function main(mesh_partition,distribute,el_size) UΓ_out(u,φ,dΩ,dΓ_in,dΓ_out) = ∫((u⋅-e₁-δₓ)/vol_Γ_out)dΓ_out ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators Tm = SparseMatrixCSR{0,PetscScalar,PetscInt} @@ -126,7 +126,7 @@ function main(mesh_partition,distribute,el_size) ## Optimiser ls_enabled=false # Setting to true will use a line search instead of oscillation detection - optimiser = HilbertianProjection(pcfs,stencil,vel_ext,φh;γ,γ_reinit,ls_enabled,α_min=0.7, + optimiser = HilbertianProjection(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,ls_enabled,α_min=0.7, ls_γ_max=0.05,verbose=i_am_main(ranks),constraint_names=[:Vol,:UΓ_out]) for (it, uh, φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/MPI/3d_nonlinear_thermal_compliance_ALM.jl b/scripts/MPI/3d_nonlinear_thermal_compliance_ALM.jl index 126309d5..e3bbfde2 100644 --- a/scripts/MPI/3d_nonlinear_thermal_compliance_ALM.jl +++ b/scripts/MPI/3d_nonlinear_thermal_compliance_ALM.jl @@ -85,7 +85,7 @@ function main(mesh_partition,distribute,el_size) dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators Tm = SparseMatrixCSR{0,PetscScalar,PetscInt} @@ -113,7 +113,7 @@ function main(mesh_partition,distribute,el_size) ) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=i_am_main(ranks),constraint_names=[:Vol]) for (it, uh, φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/MPI/3d_thermal_compliance_ALM.jl b/scripts/MPI/3d_thermal_compliance_ALM.jl index e0cea609..2c63d3e0 100644 --- a/scripts/MPI/3d_thermal_compliance_ALM.jl +++ b/scripts/MPI/3d_thermal_compliance_ALM.jl @@ -81,7 +81,7 @@ function main(mesh_partition,distribute,el_size) dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators Tm = SparseMatrixCSR{0,PetscScalar,PetscInt} @@ -107,7 +107,7 @@ function main(mesh_partition,distribute,el_size) ) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=i_am_main(ranks),constraint_names=[:Vol]) for (it, uh, φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/MPI/elastic_compliance_ALM.jl b/scripts/MPI/elastic_compliance_ALM.jl index 6fa7a17c..76a48e2b 100644 --- a/scripts/MPI/elastic_compliance_ALM.jl +++ b/scripts/MPI/elastic_compliance_ALM.jl @@ -74,7 +74,7 @@ function main(mesh_partition,distribute,el_size) dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators Tm = SparseMatrixCSR{0,PetscScalar,PetscInt} @@ -98,7 +98,7 @@ function main(mesh_partition,distribute,el_size) ls=PETScLinearSolver()) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=i_am_main(ranks),constraint_names=[:Vol]) for (it, uh, φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/MPI/inverse_homenisation_ALM.jl b/scripts/MPI/inverse_homenisation_ALM.jl index ec4d8886..55fe3af0 100644 --- a/scripts/MPI/inverse_homenisation_ALM.jl +++ b/scripts/MPI/inverse_homenisation_ALM.jl @@ -73,7 +73,7 @@ function main(mesh_partition,distribute,el_size) dVol(q,u,φ,dΩ) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators Tm = SparseMatrixCSR{0,PetscScalar,PetscInt} @@ -99,7 +99,7 @@ function main(mesh_partition,distribute,el_size) ) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=i_am_main(ranks),constraint_names=[:Vol]) for (it, uh, φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh))] diff --git a/scripts/MPI/thermal_compliance_ALM.jl b/scripts/MPI/thermal_compliance_ALM.jl index bce212f1..db881e3e 100644 --- a/scripts/MPI/thermal_compliance_ALM.jl +++ b/scripts/MPI/thermal_compliance_ALM.jl @@ -72,7 +72,7 @@ function main(mesh_partition,distribute) dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators state_map = AffineFEStateMap(a,l,U,V,V_φ,U_reg,φh,dΩ,dΓ_N) @@ -84,7 +84,7 @@ function main(mesh_partition,distribute) vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit, + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit, verbose=i_am_main(ranks),constraint_names=[:Vol]) for (it, uh, φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/MPI/thermal_compliance_ALM_PETSc.jl b/scripts/MPI/thermal_compliance_ALM_PETSc.jl index cfe2acd6..366f13ef 100644 --- a/scripts/MPI/thermal_compliance_ALM_PETSc.jl +++ b/scripts/MPI/thermal_compliance_ALM_PETSc.jl @@ -72,7 +72,7 @@ function main(mesh_partition,distribute,el_size) dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators Tm = SparseMatrixCSR{0,PetscScalar,PetscInt} @@ -98,7 +98,7 @@ function main(mesh_partition,distribute,el_size) ) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit, + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit, verbose=i_am_main(ranks),constraint_names=[:Vol]) for (it, uh, φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/Serial/elastic_compliance_ALM.jl b/scripts/Serial/elastic_compliance_ALM.jl index 7cd20e1a..6b8e4d17 100644 --- a/scripts/Serial/elastic_compliance_ALM.jl +++ b/scripts/Serial/elastic_compliance_ALM.jl @@ -71,7 +71,7 @@ function main() dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators state_map = AffineFEStateMap(a,l,U,V,V_φ,U_reg,φh,dΩ,dΓ_N) @@ -83,7 +83,7 @@ function main() vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=true,constraint_names=[:Vol]) for (it,uh,φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/Serial/elastic_compliance_HPM.jl b/scripts/Serial/elastic_compliance_HPM.jl index 50964928..d13be2c1 100644 --- a/scripts/Serial/elastic_compliance_HPM.jl +++ b/scripts/Serial/elastic_compliance_HPM.jl @@ -72,7 +72,7 @@ function main() dVol = (q,u,φ,dΩ,dΓ_N) -> ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators state_map = AffineFEStateMap(a,l,U,V,V_φ,U_reg,φh,dΩ,dΓ_N) @@ -84,7 +84,7 @@ function main() vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) ## Optimiser - optimiser = HilbertianProjection(pcfs,stencil,vel_ext,φh; + optimiser = HilbertianProjection(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=true,constraint_names=[:Vol]) for (it,uh,φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/Serial/elastic_compliance_LM.jl b/scripts/Serial/elastic_compliance_LM.jl index 0517ef1b..3accdfac 100644 --- a/scripts/Serial/elastic_compliance_LM.jl +++ b/scripts/Serial/elastic_compliance_LM.jl @@ -68,7 +68,7 @@ function main() dJ = (q,u,φ,dΩ,dΓ_N) -> ∫((- ξ + C ⊙ ε(u) ⊙ ε(u))*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ; ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators state_map = AffineFEStateMap(a,l,U,V,V_φ,U_reg,φh,dΩ,dΓ_N) @@ -80,7 +80,7 @@ function main() vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose=true) + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose=true) for (it, uh, φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] iszero(it % iter_mod) && writevtk(Ω,path*"out$it",cellfields=data) diff --git a/scripts/Serial/hyperelastic_compliance_ALM.jl b/scripts/Serial/hyperelastic_compliance_ALM.jl index c455de7b..63b9e1bf 100644 --- a/scripts/Serial/hyperelastic_compliance_ALM.jl +++ b/scripts/Serial/hyperelastic_compliance_ALM.jl @@ -71,7 +71,7 @@ function main() dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators state_map = NonlinearFEStateMap(res,U,V,V_φ,U_reg,φh,dΩ,dΓ_N) @@ -83,7 +83,7 @@ function main() vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=true,constraint_names=[:Vol]) for (it,uh,φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/Serial/hyperelastic_compliance_neohook_ALM.jl b/scripts/Serial/hyperelastic_compliance_neohook_ALM.jl index 03ea9f55..72738c4e 100644 --- a/scripts/Serial/hyperelastic_compliance_neohook_ALM.jl +++ b/scripts/Serial/hyperelastic_compliance_neohook_ALM.jl @@ -85,7 +85,7 @@ function main() dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators state_map = NonlinearFEStateMap(res,U,V,V_φ,U_reg,φh,dΩ,dΓ_N) @@ -97,7 +97,7 @@ function main() vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=true,constraint_names=[:Vol]) for (it,uh,φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/Serial/inverse_homenisation_ALM.jl b/scripts/Serial/inverse_homenisation_ALM.jl index c079c08c..0ffdd411 100644 --- a/scripts/Serial/inverse_homenisation_ALM.jl +++ b/scripts/Serial/inverse_homenisation_ALM.jl @@ -71,7 +71,7 @@ function main() dVol(q,u,φ,dΩ) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators state_map = RepeatingAffineFEStateMap(3,a,l,U,V,V_φ,U_reg,φh,dΩ) @@ -83,7 +83,7 @@ function main() vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=true,constraint_names=[:Vol]) for (it,uh,φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh))] diff --git a/scripts/Serial/inverter_ALM.jl b/scripts/Serial/inverter_ALM.jl index 2774a9ea..132a32e3 100644 --- a/scripts/Serial/inverter_ALM.jl +++ b/scripts/Serial/inverter_ALM.jl @@ -86,7 +86,7 @@ function main() UΓ_out(u,φ,dΩ,dΓ_in,dΓ_out) = ∫((u⋅-e₁-δₓ)/vol_Γ_out)dΓ_out ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators state_map = AffineFEStateMap(a,l,U,V,V_φ,U_reg,φh,dΩ,dΓ_in,dΓ_out) @@ -98,7 +98,7 @@ function main() vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=true,constraint_names=[:Vol,:UΓ_out]) for (it,uh,φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/Serial/inverter_HPM.jl b/scripts/Serial/inverter_HPM.jl index f2587eec..39ed22a0 100644 --- a/scripts/Serial/inverter_HPM.jl +++ b/scripts/Serial/inverter_HPM.jl @@ -87,7 +87,7 @@ function main() UΓ_out(u,φ,dΩ,dΓ_in,dΓ_out) = ∫((u⋅-e₁-δₓ)/vol_Γ_out)dΓ_out ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators state_map = AffineFEStateMap(a,l,U,V,V_φ,U_reg,φh,dΩ,dΓ_in,dΓ_out) @@ -100,7 +100,7 @@ function main() ## Optimiser ls_enabled=false # Setting to true will use a line search instead of oscillation detection - optimiser = HilbertianProjection(pcfs,stencil,vel_ext,φh; + optimiser = HilbertianProjection(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,α_min=0.4,ls_enabled,verbose=true,constraint_names=[:Vol,:UΓ_out]) for (it,uh,φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/Serial/nonlinear_thermal_compliance_ALM.jl b/scripts/Serial/nonlinear_thermal_compliance_ALM.jl index 51597244..621060a2 100644 --- a/scripts/Serial/nonlinear_thermal_compliance_ALM.jl +++ b/scripts/Serial/nonlinear_thermal_compliance_ALM.jl @@ -74,7 +74,7 @@ function main() dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators state_map = NonlinearFEStateMap(res,U,V,V_φ,U_reg,φh,dΩ,dΓ_N) @@ -86,7 +86,7 @@ function main() vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=true,constraint_names=[:Vol]) for (it, uh, φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/Serial/thermal_compliance_ALM.jl b/scripts/Serial/thermal_compliance_ALM.jl index 6ddf66cc..9cd0883e 100644 --- a/scripts/Serial/thermal_compliance_ALM.jl +++ b/scripts/Serial/thermal_compliance_ALM.jl @@ -72,7 +72,7 @@ function main() dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators state_map = AffineFEStateMap(a,l,U,V,V_φ,U_reg,φh,dΩ,dΓ_N) @@ -84,7 +84,7 @@ function main() vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=true,constraint_names=[:Vol]) for (it,uh,φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/Serial/thermal_compliance_ALM_higherorderlsf.jl b/scripts/Serial/thermal_compliance_ALM_higherorderlsf.jl index 0b076760..1cbc6344 100644 --- a/scripts/Serial/thermal_compliance_ALM_higherorderlsf.jl +++ b/scripts/Serial/thermal_compliance_ALM_higherorderlsf.jl @@ -78,7 +78,7 @@ function main() dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators state_map = AffineFEStateMap(a,l,U,V,V_φ,U_reg,φh,dΩ,dΓ_N) @@ -90,7 +90,7 @@ function main() vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=true,constraint_names=[:Vol]) for (it,uh,φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/_dev/3d_hyperelastic_compliance_ALM.jl b/scripts/_dev/3d_hyperelastic_compliance_ALM.jl index de79e6fc..ddc16243 100644 --- a/scripts/_dev/3d_hyperelastic_compliance_ALM.jl +++ b/scripts/_dev/3d_hyperelastic_compliance_ALM.jl @@ -153,7 +153,7 @@ function main_alt(mesh_partition,distribute,el_size,gz) res(u,v,φ,dΩ,dΓ_N) = ∫((I ∘ φ)*((T ∘ ∇(u)) ⊙ ∇(v)))dΩ - ∫(g⋅v)dΓ_N ## Finite difference solver and level set function - # stencil = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) + # ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) # reinit!(stencil,φh,γ_reinit) ## Setup solver and FE operators diff --git a/scripts/_dev/Paper_scripts/elast_comp_MPI_3D.jl b/scripts/_dev/Paper_scripts/elast_comp_MPI_3D.jl index c903951a..d177d1da 100644 --- a/scripts/_dev/Paper_scripts/elast_comp_MPI_3D.jl +++ b/scripts/_dev/Paper_scripts/elast_comp_MPI_3D.jl @@ -78,9 +78,9 @@ function main(mesh_partition,distribute) ) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit, + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit, verbose=i_am_main(ranks)) # Solve for (it,uh,φh) in optimiser diff --git a/scripts/_dev/Paper_scripts/hyperelast_comp_MPI_3D.jl b/scripts/_dev/Paper_scripts/hyperelast_comp_MPI_3D.jl index 6f463318..bef8a90d 100644 --- a/scripts/_dev/Paper_scripts/hyperelast_comp_MPI_3D.jl +++ b/scripts/_dev/Paper_scripts/hyperelast_comp_MPI_3D.jl @@ -92,9 +92,9 @@ function main(mesh_partition,distribute) ) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit, + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit, verbose=i_am_main(ranks)) # Solve for (it,uh,φh) in optimiser diff --git a/scripts/_dev/Paper_scripts/inverse_hom_MPI_3D.jl b/scripts/_dev/Paper_scripts/inverse_hom_MPI_3D.jl index 657b35c4..af7c2735 100644 --- a/scripts/_dev/Paper_scripts/inverse_hom_MPI_3D.jl +++ b/scripts/_dev/Paper_scripts/inverse_hom_MPI_3D.jl @@ -82,9 +82,9 @@ function main(mesh_partition,distribute) ) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit, + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit, verbose=i_am_main(ranks)) # Solve for (it,uh,φh) in optimiser diff --git a/scripts/_dev/Paper_scripts/inverter_MPI_3D.jl b/scripts/_dev/Paper_scripts/inverter_MPI_3D.jl index 75163cb0..d2e25582 100644 --- a/scripts/_dev/Paper_scripts/inverter_MPI_3D.jl +++ b/scripts/_dev/Paper_scripts/inverter_MPI_3D.jl @@ -88,9 +88,9 @@ function main(mesh_partition,distribute) ) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit, + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit, verbose=i_am_main(ranks)) # Solve for (it,uh,φh) in optimiser diff --git a/scripts/_dev/Paper_scripts/therm_comp_MPI.jl b/scripts/_dev/Paper_scripts/therm_comp_MPI.jl index 8320ff76..902742bf 100644 --- a/scripts/_dev/Paper_scripts/therm_comp_MPI.jl +++ b/scripts/_dev/Paper_scripts/therm_comp_MPI.jl @@ -78,9 +78,9 @@ function main(mesh_partition,distribute) ) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose=i_am_main(ranks)) + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose=i_am_main(ranks)) # Solve for (it,uh,φh) in optimiser data = ["φ"=>φh,"H(φ)"=>(H ∘ φh),"|∇(φ)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/_dev/Paper_scripts/therm_comp_MPI_3D.jl b/scripts/_dev/Paper_scripts/therm_comp_MPI_3D.jl index 3cb4f8ba..5104e0d6 100644 --- a/scripts/_dev/Paper_scripts/therm_comp_MPI_3D.jl +++ b/scripts/_dev/Paper_scripts/therm_comp_MPI_3D.jl @@ -80,9 +80,9 @@ function main(mesh_partition,distribute) ) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit, + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit, verbose=i_am_main(ranks)) # Solve for (it,uh,φh) in optimiser diff --git a/scripts/_dev/Paper_scripts/therm_comp_serial.jl b/scripts/_dev/Paper_scripts/therm_comp_serial.jl index 9e7e2342..0b53164f 100644 --- a/scripts/_dev/Paper_scripts/therm_comp_serial.jl +++ b/scripts/_dev/Paper_scripts/therm_comp_serial.jl @@ -63,9 +63,9 @@ function main() vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit, + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit, verbose=true) # Solve for (it,uh,φh) in optimiser diff --git a/scripts/_dev/benchmark_tests/MPI_benchmark_test_2D_themal.jl b/scripts/_dev/benchmark_tests/MPI_benchmark_test_2D_themal.jl index 2d09b546..9a0c3e3f 100644 --- a/scripts/_dev/benchmark_tests/MPI_benchmark_test_2D_themal.jl +++ b/scripts/_dev/benchmark_tests/MPI_benchmark_test_2D_themal.jl @@ -62,7 +62,7 @@ function main(mesh_partition,el_size,ranks) dJ(q,u,φ,dΩ,dΓ_N) = ∫((-ξ+D*∇(u)⋅∇(u))*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ; ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) reinit!(stencil,φh,γ_reinit) ## Setup solver and FE operators @@ -75,7 +75,7 @@ function main(mesh_partition,el_size,ranks) vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) ## Optimiser - return AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit) + return AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit) end with_debug() do distribute diff --git a/scripts/_dev/benchmark_tests/MPI_benchmark_test_3D_themal.jl b/scripts/_dev/benchmark_tests/MPI_benchmark_test_3D_themal.jl index 5842ead6..b04bbac8 100644 --- a/scripts/_dev/benchmark_tests/MPI_benchmark_test_3D_themal.jl +++ b/scripts/_dev/benchmark_tests/MPI_benchmark_test_3D_themal.jl @@ -68,7 +68,7 @@ function main(mesh_partition,distribute,el_size) dJ(q,u,φ,dΩ,dΓ_N) = ∫((ξ-D*∇(u)⋅∇(u))*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) reinit!(stencil,φh,γ_reinit) ## Setup solver and FE operators @@ -96,7 +96,7 @@ function main(mesh_partition,distribute,el_size) ## Optimiser make_dir(path;ranks=ranks) - return AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit) + return AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit) end with_mpi() do distribute diff --git a/scripts/_dev/benchmark_tests/serial_benchmark_test.jl b/scripts/_dev/benchmark_tests/serial_benchmark_test.jl index 0f8a784a..17eb71cf 100644 --- a/scripts/_dev/benchmark_tests/serial_benchmark_test.jl +++ b/scripts/_dev/benchmark_tests/serial_benchmark_test.jl @@ -56,7 +56,7 @@ function main() dJ(q,u,φ,dΩ,dΓ_N) = ∫((ξ-D*∇(u)⋅∇(u))*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) reinit!(stencil,φh,γ_reinit) ## Setup solver and FE operators @@ -69,7 +69,7 @@ function main() vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) ## Optimiser - return AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit) + return AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit) end function main_benchmark() diff --git a/scripts/_dev/bug_issue_46/thermal_MPI.jl b/scripts/_dev/bug_issue_46/thermal_MPI.jl index 176e7b05..f318893d 100644 --- a/scripts/_dev/bug_issue_46/thermal_MPI.jl +++ b/scripts/_dev/bug_issue_46/thermal_MPI.jl @@ -68,9 +68,9 @@ function main(mesh_partition,distribute,use_l::Bool) vel_ext = VelocityExtension(a_hilb, U_reg, V_reg) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=i_am_main(ranks),constraint_names=[:Vol]) # Solve for (it,uh,φh) in optimiser diff --git a/scripts/_dev/bug_issue_46/thermal_serial.jl b/scripts/_dev/bug_issue_46/thermal_serial.jl index b94a4d09..2d0e2017 100644 --- a/scripts/_dev/bug_issue_46/thermal_serial.jl +++ b/scripts/_dev/bug_issue_46/thermal_serial.jl @@ -67,9 +67,9 @@ function main(use_l::Bool) vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=true,constraint_names=[:Vol]) # Solve for (it,uh,φh) in optimiser diff --git a/scripts/_dev/full_piezo_script.jl b/scripts/_dev/full_piezo_script.jl index 49dc507a..7ed4c1ab 100644 --- a/scripts/_dev/full_piezo_script.jl +++ b/scripts/_dev/full_piezo_script.jl @@ -92,7 +92,7 @@ function main(mesh_partition,distribute,el_size) dVol(q,u,φ,dΩ) = ∫(1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,tol,max_steps) reinit!(stencil,φh,γ_reinit) ## Setup solver and FE operators @@ -126,7 +126,7 @@ function main(mesh_partition,distribute,el_size) # ## Optimiser # make_dir(path;ranks=ranks) - # optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose=i_am_main(ranks)) + # optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose=i_am_main(ranks)) # for (it, uh, φh) in optimiser # write_vtk(Ω,path*"/struc_$it",it,["phi"=>φh,"H(phi)"=>(H ∘ φh),"|nabla(phi)|"=>(norm ∘ ∇(φh)),"uh"=>uh]) # write_history(path*"/history.txt",optimiser.history;ranks=ranks) diff --git a/scripts/_dev/inv_hom_block_assem_testing.jl b/scripts/_dev/inv_hom_block_assem_testing.jl index d8623a05..14d2b24a 100644 --- a/scripts/_dev/inv_hom_block_assem_testing.jl +++ b/scripts/_dev/inv_hom_block_assem_testing.jl @@ -74,7 +74,7 @@ Vol = (u,φ,dΩ) -> ∫(((ρ ∘ φ) - 0.5)/vol_D)dΩ; dVol = (q,u,φ,dΩ) -> ∫(1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function -stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,el_size./order,max_steps,tol); +ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,el_size./order,max_steps,tol); reinit!(stencil,φ,γ_reinit) ## Initialise op diff --git a/scripts/_dev/inv_hom_block_assem_testing_3D_MPI.jl b/scripts/_dev/inv_hom_block_assem_testing_3D_MPI.jl index d0317914..3c7e57a6 100644 --- a/scripts/_dev/inv_hom_block_assem_testing_3D_MPI.jl +++ b/scripts/_dev/inv_hom_block_assem_testing_3D_MPI.jl @@ -86,7 +86,7 @@ function main(mesh_partition,distribute,el_size,diag_assem::Bool) dVol = (q,u,φ,dΩ) -> ∫(1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,el_size./order,max_steps,tol) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(3,Float64),model,V_φ,el_size./order,max_steps,tol) reinit!(stencil,φ,γ_reinit) ## Setup solver and FE operators @@ -130,7 +130,7 @@ function main(mesh_partition,distribute,el_size,diag_assem::Bool) ## Optimiser make_dir(path;ranks=ranks) - optimiser = AugmentedLagrangian(φ,pcfs,stencil,vel_ext,interp,el_size,γ,γ_reinit); + optimiser = AugmentedLagrangian(φ,pcfs,ls_evo,vel_ext,interp,el_size,γ,γ_reinit); for history in optimiser it,Ji,Ci,Li = last(history) λi = optimiser.λ; Λi = optimiser.Λ diff --git a/scripts/_dev/inv_hom_block_assem_testing_full_script.jl b/scripts/_dev/inv_hom_block_assem_testing_full_script.jl index 13da1a00..46d9baf3 100644 --- a/scripts/_dev/inv_hom_block_assem_testing_full_script.jl +++ b/scripts/_dev/inv_hom_block_assem_testing_full_script.jl @@ -77,7 +77,7 @@ function main(diag_block) dVol = (q,u,φ,dΩ) -> ∫(1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,el_size./order,max_steps,tol) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,el_size./order,max_steps,tol) reinit!(stencil,φ,γ_reinit) ## Setup solver and FE operators @@ -109,7 +109,7 @@ function main(diag_block) ## Optimiser make_dir(path) - optimiser = AugmentedLagrangian(φ,pcfs,stencil,vel_ext,interp,el_size,γ,γ_reinit); + optimiser = AugmentedLagrangian(φ,pcfs,ls_evo,vel_ext,interp,el_size,γ,γ_reinit); for history in optimiser it,Ji,Ci,Li = last(history) λi = optimiser.λ; Λi = optimiser.Λ diff --git a/scripts/_dev/mem_leak.jl b/scripts/_dev/mem_leak.jl index 2865affb..278ec667 100644 --- a/scripts/_dev/mem_leak.jl +++ b/scripts/_dev/mem_leak.jl @@ -62,9 +62,9 @@ a_hilb(p,q) =∫(α^2*∇(p)⋅∇(q) + p*q)dΩ vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) -stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) +ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser -optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) +optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) # Solve for i = 1:10 LevelSetTopOpt.rrule(state_map,φh) diff --git a/scripts/_dev/nonlinear_adjoint_MWE.jl b/scripts/_dev/nonlinear_adjoint_MWE.jl index 082e78e0..df5fe18a 100644 --- a/scripts/_dev/nonlinear_adjoint_MWE.jl +++ b/scripts/_dev/nonlinear_adjoint_MWE.jl @@ -70,7 +70,7 @@ function main() J = (u,φ,dΩ,dΓ_N) -> ∫((I ∘ φ)*(D ∘ u)*∇(u)⋅∇(u) + ξ*(ρ ∘ φ))dΩ ## Finite difference solver and level set function - stencil = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,el_size./order,max_steps,tol) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,el_size./order,max_steps,tol) reinit!(stencil,φ,γ_reinit) ## Setup solver and FE operators diff --git a/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation.jl b/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation.jl index c9f05eca..91dbabaa 100644 --- a/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation.jl +++ b/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation.jl @@ -61,9 +61,9 @@ a_hilb(p,q) =∫(α^2*∇(p)⋅∇(q) + p*q)dΩ vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) -stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) +ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser -optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) +optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) # Solve for (it,uh,φh) in optimiser data = ["phi"=>φh,"H(phi)"=>(H ∘ φh),"|nabla(phi)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_3d.jl b/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_3d.jl index f6db4233..8218dabf 100644 --- a/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_3d.jl +++ b/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_3d.jl @@ -63,9 +63,9 @@ a_hilb(p,q) =∫(α^2*∇(p)⋅∇(q) + p*q)dΩ vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) -stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) +ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser -optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) +optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) # Solve for (it,uh,φh) in optimiser data = ["phi"=>φh,"H(phi)"=>(H ∘ φh),"|nabla(phi)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_3d_petsc.jl b/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_3d_petsc.jl index b41760df..10c1dacf 100644 --- a/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_3d_petsc.jl +++ b/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_3d_petsc.jl @@ -77,9 +77,9 @@ function main() ) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) # Solve for (it,uh,φh) in optimiser data = ["phi"=>φh,"H(phi)"=>(H ∘ φh),"|nabla(phi)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_3d_petsc_mpi.jl b/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_3d_petsc_mpi.jl index 7ea63770..1b88fd91 100644 --- a/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_3d_petsc_mpi.jl +++ b/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_3d_petsc_mpi.jl @@ -78,9 +78,9 @@ function main(mesh_partition,distribute) ) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) - stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=i_am_main(ranks),constraint_names=[:Vol]) # Solve for (it,uh,φh) in optimiser diff --git a/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_nonlinear.jl b/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_nonlinear.jl index 69c03024..3642fb95 100644 --- a/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_nonlinear.jl +++ b/scripts/_dev/tutorial_test/minimum_thermal_compliance_implementation_nonlinear.jl @@ -59,9 +59,9 @@ a_hilb(p,q) =∫(α^2*∇(p)⋅∇(q) + p*q)dΩ vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) # Finite difference scheme scheme = FirstOrderStencil(length(el_size),Float64) -stencil = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) +ls_evo = HamiltonJacobiEvolution(scheme,model,V_φ,tol,max_steps) # Optimiser -optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) +optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh;γ,γ_reinit,verbose=true,constraint_names=[:Vol]) # Solve for (it,uh,φh) in optimiser data = ["phi"=>φh,"H(phi)"=>(H ∘ φh),"|nabla(phi)|"=>(norm ∘ ∇(φh)),"uh"=>uh] diff --git a/test/seq/ThermalComplianceALMTests.jl b/test/seq/ThermalComplianceALMTests.jl index 1d227f11..a5891838 100644 --- a/test/seq/ThermalComplianceALMTests.jl +++ b/test/seq/ThermalComplianceALMTests.jl @@ -71,7 +71,7 @@ function main() dVol(q,u,φ,dΩ,dΓ_N) = ∫(-1/vol_D*q*(DH ∘ φ)*(norm ∘ ∇(φ)))dΩ ## Finite difference solver and level set function - stencil = AdvectionStencil(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) + ls_evo = HamiltonJacobiEvolution(FirstOrderStencil(2,Float64),model,V_φ,tol,max_steps) ## Setup solver and FE operators state_map = AffineFEStateMap(a,l,U,V,V_φ,U_reg,φh,dΩ,dΓ_N) @@ -83,7 +83,7 @@ function main() vel_ext = VelocityExtension(a_hilb,U_reg,V_reg) ## Optimiser - optimiser = AugmentedLagrangian(pcfs,stencil,vel_ext,φh; + optimiser = AugmentedLagrangian(pcfs,ls_evo,vel_ext,φh; γ,γ_reinit,verbose=true,constraint_names=[:Vol]) # Do a few iterations