Skip to content

Commit eeec617

Browse files
committed
avoid using params macro in src
1 parent 2b571ff commit eeec617

26 files changed

+380
-210
lines changed

src/Algorithms/beso.jl

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
@params mutable struct BESOResult{T}
2-
topology::AbstractVector{T}
1+
mutable struct BESOResult{T,Tt<:AbstractVector{T}}
2+
topology::Tt
33
objval::T
44
change::T
55
converged::Bool
@@ -9,22 +9,32 @@ end
99
"""
1010
The BESO algorithm, see [HuangXie2010](@cite).
1111
"""
12-
@params struct BESO{T} <: TopOptAlgorithm
13-
comp::Compliance
14-
vol::Volume
15-
vol_limit::Any
16-
filter::Any
12+
struct BESO{
13+
T,
14+
Tc<:Compliance,
15+
Tv1<:Volume,
16+
Tv2,
17+
Tf,
18+
Ts<:AbstractVector{T},
19+
To1<:AbstractVector{T},
20+
To2<:MVector{<:Any,T},
21+
Tr<:BESOResult{T},
22+
} <: TopOptAlgorithm
23+
comp::Tc
24+
vol::Tv1
25+
vol_limit::Tv2
26+
filter::Tf
1727
vars::Vector{T}
1828
topology::Vector{T}
1929
er::T
2030
maxiter::Int
2131
p::T
22-
sens::AbstractVector{T}
23-
old_sens::AbstractVector{T}
24-
obj_trace::MVector{<:Any,T}
32+
sens::Ts
33+
old_sens::To1
34+
obj_trace::To2
2535
tol::T
2636
sens_tol::T
27-
result::BESOResult{T}
37+
result::Tr
2838
end
2939
Base.show(::IO, ::MIME{Symbol("text/plain")}, ::BESO) = println("TopOpt BESO algorithm")
3040

src/Algorithms/geso.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
@params mutable struct GESOResult{T}
2-
topology::AbstractVector{T}
1+
mutable struct GESOResult{T,Tt<:AbstractVector{T}}
2+
topology::Tt
33
objval::T
44
change::T
55
converged::Bool

src/CheqFilters/CheqFilters.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ abstract type AbstractCheqFilter end
2121
abstract type AbstractSensFilter <: AbstractCheqFilter end
2222
abstract type AbstractDensityFilter <: AbstractCheqFilter end
2323

24-
@params struct FilterMetadata
25-
cell_neighbouring_nodes::Any
26-
cell_node_weights::Any
24+
struct FilterMetadata{TC1,TC2}
25+
cell_neighbouring_nodes::TC1
26+
cell_node_weights::TC2
2727
end
2828
function Base.show(::IO, ::MIME{Symbol("text/plain")}, ::FilterMetadata)
2929
return println("TopOpt filter metadata")

src/CheqFilters/density_filter.jl

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
@params struct DensityFilter{_filtering,T} <: AbstractDensityFilter
1+
struct DensityFilter{_filtering,T,TM<:FilterMetadata,TJ<:AbstractMatrix{T}} <:
2+
AbstractDensityFilter
23
filtering::Val{_filtering}
3-
metadata::FilterMetadata
4+
metadata::TM
45
rmin::T
5-
jacobian::AbstractMatrix{T}
6+
jacobian::TJ
67
end
78
function Base.show(::IO, ::MIME{Symbol("text/plain")}, ::DensityFilter)
89
return println("TopOpt density filter")
@@ -127,10 +128,10 @@ function scalecols!(A::SparseMatrixCSC)
127128
return A
128129
end
129130

130-
@params struct ProjectedDensityFilter <: AbstractDensityFilter
131-
filter::DensityFilter
132-
preproj::Any
133-
postproj::Any
131+
struct ProjectedDensityFilter{TF<:DensityFilter,TP1,TP2} <: AbstractDensityFilter
132+
filter::TF
133+
preproj::TP1
134+
postproj::TP2
134135
end
135136
function Nonconvex.NonconvexCore.getdim(f::ProjectedDensityFilter)
136137
return Nonconvex.NonconvexCore.getdim(f.filter)

src/CheqFilters/sens_filter.jl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
@params struct SensFilter{_filtering,T,TV<:AbstractVector{T}} <: AbstractSensFilter
1+
struct SensFilter{
2+
_filtering,T,TV<:AbstractVector{T},TE<:ElementFEAInfo,TM<:FilterMetadata
3+
} <: AbstractSensFilter
24
filtering::Val{_filtering}
3-
elementinfo::ElementFEAInfo
4-
metadata::FilterMetadata
5+
elementinfo::TE
6+
metadata::TM
57
rmin::T
68
nodal_grad::TV
79
last_grad::TV

src/FEA/assembly_cg_displacement_solvers.jl

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,35 @@
1-
@params mutable struct PCGDisplacementSolver{T,dim,TP<:AbstractPenalty{T}} <:
2-
AbstractDisplacementSolver
3-
problem::StiffnessTopOptProblem{dim,T}
4-
globalinfo::GlobalFEAInfo{T}
5-
elementinfo::ElementFEAInfo{dim,T}
6-
u::AbstractVector{T}
7-
lhs::AbstractVector{T}
8-
rhs::AbstractVector{T}
9-
vars::AbstractVector{T}
1+
mutable struct PCGDisplacementSolver{
2+
T,
3+
dim,
4+
TP<:AbstractPenalty{T},
5+
Tp1<:StiffnessTopOptProblem{dim,T},
6+
Tg<:GlobalFEAInfo{T},
7+
Te<:ElementFEAInfo{dim,T},
8+
Tu<:AbstractVector{T},
9+
Tl<:AbstractVector{T},
10+
Tr<:AbstractVector{T},
11+
Tv<:AbstractVector{T},
12+
Tc1<:Integer,
13+
Tc2<:CGStateVariables{T,<:AbstractVector{T}},
14+
Tp2,
15+
Tc3,
16+
} <: AbstractDisplacementSolver
17+
problem::Tp1
18+
globalinfo::Tg
19+
elementinfo::Te
20+
u::Tu
21+
lhs::Tl
22+
rhs::Tr
23+
vars::Tv
1024
penalty::TP
1125
prev_penalty::TP
1226
xmin::T
13-
cg_max_iter::Integer
27+
cg_max_iter::Tc1
1428
abstol::T
15-
cg_statevars::CGStateVariables{T,<:AbstractVector{T}}
16-
preconditioner::Any
17-
preconditioner_initialized::Ref{Bool}
18-
conv::Any
29+
cg_statevars::Tc2
30+
preconditioner::Tp2
31+
preconditioner_initialized::Base.RefValue{Bool}
32+
conv::Tc3
1933
end
2034
function Base.show(::IO, ::MIME{Symbol("text/plain")}, x::PCGDisplacementSolver)
2135
return println("TopOpt preconditioned conjugate gradient iterative solver")

src/FEA/matrix_free_cg_displacement_solvers.jl

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,44 @@
11
abstract type AbstractMatrixFreeSolver <: AbstractDisplacementSolver end
22

3-
@params mutable struct StaticMatrixFreeDisplacementSolver{T,dim,TP<:AbstractPenalty{T}} <:
4-
AbstractDisplacementSolver
5-
elementinfo::ElementFEAInfo{dim}
6-
problem::StiffnessTopOptProblem{dim}
7-
f::AbstractVector{T}
3+
mutable struct StaticMatrixFreeDisplacementSolver{
4+
T,
5+
dim,
6+
TP<:AbstractPenalty{T},
7+
Te<:ElementFEAInfo{dim},
8+
Tp1<:StiffnessTopOptProblem{dim},
9+
Tf<:AbstractVector{T},
10+
Tu<:AbstractVector{T},
11+
Tl<:AbstractVector{T},
12+
Tr<:AbstractVector{T},
13+
Tv<:AbstractVector{T},
14+
Tx,
15+
Tf1,
16+
Tf2,
17+
Tc1<:Integer,
18+
Tc2<:CGStateVariables{T},
19+
Tp2,
20+
Tc3,
21+
} <: AbstractDisplacementSolver
22+
elementinfo::Te
23+
problem::Tp1
24+
f::Tf
825
meandiag::T
9-
u::AbstractVector{T}
10-
lhs::AbstractVector{T}
11-
rhs::AbstractVector{T}
12-
vars::AbstractVector{T}
13-
xes::Any
14-
fixed_dofs::Any
15-
free_dofs::Any
26+
u::Tu
27+
lhs::Tl
28+
rhs::Tr
29+
vars::Tv
30+
xes::Tx
31+
fixed_dofs::Tf1
32+
free_dofs::Tf2
1633
penalty::TP
1734
prev_penalty::TP
1835
xmin::T
19-
cg_max_iter::Integer
36+
cg_max_iter::Tc1
2037
abstol::T
21-
cg_statevars::CGStateVariables{T}
22-
preconditioner::Any
38+
cg_statevars::Tc2
39+
preconditioner::Tp2
2340
preconditioner_initialized::Base.RefValue{Bool}
24-
conv::Any
41+
conv::Tc3
2542
end
2643
function Base.show(
2744
::IO, ::MIME{Symbol("text/plain")}, x::StaticMatrixFreeDisplacementSolver

src/FEA/matrix_free_operator.jl

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
abstract type AbstractMatrixOperator{Tconv} end
22

3-
@params struct MatrixOperator{Tconv} <: AbstractMatrixOperator{Tconv}
4-
K::Any
5-
f::Any
3+
struct MatrixOperator{Tconv,TK,Tf} <: AbstractMatrixOperator{Tconv}
4+
K::TK
5+
f::Tf
66
conv::Tconv
77
end
88
function Base.show(::IO, ::MIME{Symbol("text/plain")}, ::MatrixOperator)
@@ -13,16 +13,27 @@ Base.size(op::MatrixOperator, i...) = size(op.K, i...)
1313
Base.eltype(op::MatrixOperator) = eltype(op.K)
1414
LinearAlgebra.:*(op::MatrixOperator, b) = mul!(similar(b), op.K, b)
1515

16-
@params struct MatrixFreeOperator{Tconv,T,dim} <: AbstractMatrixOperator{Tconv}
17-
f::AbstractVector{T}
18-
elementinfo::ElementFEAInfo{dim,T}
16+
struct MatrixFreeOperator{
17+
Tconv,
18+
T,
19+
dim,
20+
Tf<:AbstractVector{T},
21+
Te<:ElementFEAInfo{dim,T},
22+
Tv<:AbstractVector{T},
23+
Tx,
24+
Tf1,
25+
Tf2,
26+
Tp,
27+
} <: AbstractMatrixOperator{Tconv}
28+
f::Tf
29+
elementinfo::Te
1930
meandiag::T
20-
vars::AbstractVector{T}
21-
xes::Any
22-
fixed_dofs::Any
23-
free_dofs::Any
31+
vars::Tv
32+
xes::Tx
33+
fixed_dofs::Tf1
34+
free_dofs::Tf2
2435
xmin::T
25-
penalty::Any
36+
penalty::Tp
2637
conv::Tconv
2738
end
2839
function Base.show(::IO, ::MIME{Symbol("text/plain")}, ::MatrixFreeOperator)

src/FEA/simulate.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
using TimerOutputs
22

3-
@params struct LinearElasticityResult
4-
comp::Any
5-
u::Any
3+
struct LinearElasticityResult{Tc,Tu}
4+
comp::Tc
5+
u::Tu
66
end
77
function Base.show(::IO, ::MIME{Symbol("text/plain")}, ::LinearElasticityResult)
88
return println("TopOpt linear elasticity result")

src/Functions/assemble_K.jl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
@params mutable struct AssembleK{T} <: AbstractFunction{T}
2-
problem::StiffnessTopOptProblem
3-
K::AbstractMatrix{T}
4-
global_dofs::AbstractVector{<:Integer} # preallocated dof vector for a cell
1+
mutable struct AssembleK{
2+
T,Tp<:StiffnessTopOptProblem,TK<:AbstractMatrix{T},Tg<:AbstractVector{<:Integer}
3+
} <: AbstractFunction{T}
4+
problem::Tp
5+
K::TK
6+
global_dofs::Tg # preallocated dof vector for a cell
57
end
68

79
function Base.show(::IO, ::MIME{Symbol("text/plain")}, ::AssembleK)

0 commit comments

Comments
 (0)