Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ BlockArrays = "1"
CUDA = ">=5.7.3"
DiffEqBase = "6"
FastBroadcast = "0.3.5"
Ferrite = "=1.1.0"
Ferrite = "=1.2"
ForwardDiff = "0.10.38"
JET = "0.9, 0.10"
KernelAbstractions = "0.9.34"
Expand Down
36 changes: 19 additions & 17 deletions docs/Manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -586,9 +586,9 @@ version = "0.9.5"

[[deps.Documenter]]
deps = ["ANSIColoredPrinters", "AbstractTrees", "Base64", "CodecZlib", "Dates", "DocStringExtensions", "Downloads", "Git", "IOCapture", "InteractiveUtils", "JSON", "Logging", "Markdown", "MarkdownAST", "Pkg", "PrecompileTools", "REPL", "RegistryInstances", "SHA", "TOML", "Test", "Unicode"]
git-tree-sha1 = "352b9a04e74edd16429aec79f033620cf8e780d4"
git-tree-sha1 = "70c521ca3a23c576e12655d15963977c9766c26b"
uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
version = "1.15.0"
version = "1.16.0"

[[deps.DocumenterCitations]]
deps = ["AbstractTrees", "Bibliography", "Bijections", "Dates", "Documenter", "Logging", "Markdown", "MarkdownAST", "OrderedCollections", "Unicode"]
Expand Down Expand Up @@ -735,17 +735,19 @@ version = "1.2.0"

[[deps.Ferrite]]
deps = ["EnumX", "ForwardDiff", "LinearAlgebra", "NearestNeighbors", "OrderedCollections", "Preferences", "Reexport", "SparseArrays", "StaticArrays", "Tensors", "WriteVTK"]
git-tree-sha1 = "569ab58080263a9e8f7870e093817e3d8edafcc7"
git-tree-sha1 = "26e13c8e1ed9df75129be2e22409e93ba5565ce1"
uuid = "c061ca5d-56c9-439f-9c0e-210fe06d3992"
version = "1.1.0"
version = "1.2.0"

[deps.Ferrite.extensions]
FerriteBlockArrays = "BlockArrays"
FerriteMetis = "Metis"
FerriteSparseMatrixCSR = "SparseMatricesCSR"

[deps.Ferrite.weakdeps]
BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e"
Metis = "2679e427-3c69-5b7f-982b-ece356f1e94b"
SparseMatricesCSR = "a0a7dd2c-ebf4-11e9-1f05-cf50bc540ca1"

[[deps.FerriteGmsh]]
deps = ["Ferrite", "Gmsh"]
Expand Down Expand Up @@ -1546,10 +1548,10 @@ uuid = "a63ad114-7e13-5084-954f-fe012c677804"
version = "1.11.0"

[[deps.ModelingToolkit]]
deps = ["ADTypes", "AbstractTrees", "ArrayInterface", "BlockArrays", "ChainRulesCore", "Combinatorics", "CommonSolve", "Compat", "ConstructionBase", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "DiffRules", "DifferentiationInterface", "Distributed", "Distributions", "DocStringExtensions", "DomainSets", "DynamicQuantities", "EnumX", "ExprTools", "FindFirstFunctions", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "Graphs", "ImplicitDiscreteSolve", "InteractiveUtils", "JuliaFormatter", "JumpProcesses", "Latexify", "Libdl", "LinearAlgebra", "MLStyle", "Moshi", "NaNMath", "OffsetArrays", "OrderedCollections", "OrdinaryDiffEqCore", "PrecompileTools", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SCCNonlinearSolve", "SciMLBase", "SciMLPublic", "SciMLStructures", "Serialization", "Setfield", "SimpleNonlinearSolve", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "SymbolicUtils", "Symbolics", "URIs", "UnPack", "Unitful"]
git-tree-sha1 = "19f87f86d5b314ae8a2d033b353d268bfab071c3"
deps = ["ADTypes", "AbstractTrees", "ArrayInterface", "BlockArrays", "ChainRulesCore", "Combinatorics", "CommonSolve", "Compat", "ConstructionBase", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "DiffRules", "DifferentiationInterface", "Distributed", "Distributions", "DocStringExtensions", "DomainSets", "DynamicQuantities", "EnumX", "ExprTools", "FillArrays", "FindFirstFunctions", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "Graphs", "ImplicitDiscreteSolve", "InteractiveUtils", "JuliaFormatter", "JumpProcesses", "Latexify", "Libdl", "LinearAlgebra", "MLStyle", "Moshi", "NaNMath", "OffsetArrays", "OrderedCollections", "OrdinaryDiffEqCore", "PreallocationTools", "PrecompileTools", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SCCNonlinearSolve", "SciMLBase", "SciMLPublic", "SciMLStructures", "Serialization", "Setfield", "SimpleNonlinearSolve", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "SymbolicUtils", "Symbolics", "URIs", "UnPack", "Unitful"]
git-tree-sha1 = "0bdec80c38496a56dbc3ed222dd49c2139d728af"
uuid = "961ee093-0014-501f-94e3-6117800e7a78"
version = "10.26.1"
version = "10.28.0"

[deps.ModelingToolkit.extensions]
MTKBifurcationKitExt = "BifurcationKit"
Expand Down Expand Up @@ -1610,9 +1612,9 @@ version = "1.1.3"

[[deps.NearestNeighbors]]
deps = ["Distances", "StaticArrays"]
git-tree-sha1 = "ca7e18198a166a1f3eb92a3650d53d94ed8ca8a1"
git-tree-sha1 = "17399deebfc0ef7d7a97225776571d13adf01a36"
uuid = "b8a86587-4115-5ab1-83bc-aa920d37bbce"
version = "0.4.22"
version = "0.4.23"

[[deps.NetworkOptions]]
uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
Expand Down Expand Up @@ -1653,9 +1655,9 @@ version = "4.12.0"

[[deps.NonlinearSolveBase]]
deps = ["ADTypes", "Adapt", "ArrayInterface", "CommonSolve", "Compat", "ConcreteStructs", "DifferentiationInterface", "EnzymeCore", "FastClosures", "LinearAlgebra", "Markdown", "MaybeInplace", "Preferences", "Printf", "RecursiveArrayTools", "SciMLBase", "SciMLJacobianOperators", "SciMLLogging", "SciMLOperators", "SciMLStructures", "Setfield", "StaticArraysCore", "SymbolicIndexingInterface", "TimerOutputs"]
git-tree-sha1 = "6264f0258f674fc1eaed58ecb5fca405c46a04cc"
git-tree-sha1 = "a72dc6e5bba0fd9bb3bd9cc4abade8552d9fc982"
uuid = "be0214bd-f91f-a760-ac4e-3421ce2b2da0"
version = "2.2.0"
version = "2.4.0"

[deps.NonlinearSolveBase.extensions]
NonlinearSolveBaseBandedMatricesExt = "BandedMatrices"
Expand Down Expand Up @@ -1857,9 +1859,9 @@ weakdeps = ["StatsBase"]

[[deps.Pango_jll]]
deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"]
git-tree-sha1 = "1f7f9bbd5f7a2e5a9f7d96e51c9754454ea7f60b"
git-tree-sha1 = "0662b083e11420952f2e62e17eddae7fc07d5997"
uuid = "36c8627f-9965-5494-a995-c6b170f724f3"
version = "1.56.4+0"
version = "1.57.0+0"

[[deps.Parameters]]
deps = ["OrderedCollections", "UnPack"]
Expand Down Expand Up @@ -2172,9 +2174,9 @@ version = "0.1.0"

[[deps.SciMLBase]]
deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "Moshi", "PreallocationTools", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLLogging", "SciMLOperators", "SciMLPublic", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface"]
git-tree-sha1 = "7614a1b881317b6800a8c66eb1180c6ea5b986f3"
git-tree-sha1 = "dc93eb05a8101a58c844e0e20a47f8a92be33048"
uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
version = "2.124.0"
version = "2.127.0"

[deps.SciMLBase.extensions]
SciMLBaseChainRulesCoreExt = "ChainRulesCore"
Expand Down Expand Up @@ -2229,9 +2231,9 @@ version = "1.5.0"

[[deps.SciMLOperators]]
deps = ["Accessors", "ArrayInterface", "DocStringExtensions", "LinearAlgebra", "MacroTools"]
git-tree-sha1 = "18e8ea3fdfca9c3408f1df8fc1d7690b12784338"
git-tree-sha1 = "5dfddb5e9699a268937a6f2a71c867a2ce3c6458"
uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961"
version = "1.10.0"
version = "1.11.0"
weakdeps = ["SparseArrays", "StaticArraysCore"]

[deps.SciMLOperators.extensions]
Expand Down
3 changes: 2 additions & 1 deletion src/ferrite-addons/collections.jl
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ A collection of compatible vector-valued interpolations over some (possilby diff
"""
abstract type VectorInterpolationCollection <: InterpolationCollection end

getinterpolation(qrc::InterpolationCollection, sdh::SubDofHandler) = getfacetvalues(qrc, get_first_cell(sdh))
# Wildcard
getinterpolation(ipc::InterpolationCollection, sdh::SubDofHandler) = getinterpolation(ipc, get_first_cell(sdh))

"""
LagrangeCollection{order} <: InterpolationCollection
Expand Down
3 changes: 3 additions & 0 deletions src/ferrite-addons/parallel_duplication_api.jl
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ end
function duplicate_for_device(device, asm::Ferrite.SymmetricCSCAssembler)
return Ferrite.SymmetricCSCAssembler(asm.K, asm.f, duplicate_for_device(device, asm.permutation), duplicate_for_device(device, asm.sorteddofs))
end
function duplicate_for_device(device, asm::Ferrite.CSRAssembler)
Ferrite.CSRAssembler(asm.K, asm.f, duplicate_for_device(device, asm.permutation), duplicate_for_device(device, asm.sorteddofs))
end

function duplicate_for_device(device, fv::FacetValues)
return FacetValues(
Expand Down
4 changes: 2 additions & 2 deletions src/solver/interface.jl
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ function setup_operator(strategy::Union{SequentialAssemblyStrategy{<:AbstractCPU
end
function setup_assembled_operator(strategy::SequentialAssemblyStrategy{<:AbstractCPUDevice}, integrator::AbstractBilinearIntegrator, system_matrix_type::Type, dh::AbstractDofHandler)
A = create_system_matrix(system_matrix_type, dh)
A_ = if strategy.device isa AbstractCPUDevice && system_matrix_type isa SparseMatrixCSC #if "can assemble with system_matrix_type"
A_ = if strategy.device isa AbstractCPUDevice
A
else
allocate_matrix(dh)
Expand All @@ -77,7 +77,7 @@ function setup_assembled_operator(strategy::SequentialAssemblyStrategy{<:Abstrac
end
function setup_assembled_operator(strategy::PerColorAssemblyStrategy, integrator::AbstractBilinearIntegrator, system_matrix_type::Type, dh::AbstractDofHandler)
A = create_system_matrix(system_matrix_type, dh)
A_ = if strategy.device isa AbstractCPUDevice && system_matrix_type isa SparseMatrixCSC #if "can assemble with system_matrix_type"
A_ = if strategy.device isa AbstractCPUDevice
A
else
allocate_matrix(dh)
Expand Down
4 changes: 4 additions & 0 deletions src/utils.jl
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,10 @@ function Ferrite.zero_out_columns!(K::SparseMatrixCSR, dofmapping::Dict)
end
end

function Ferrite.start_assemble(K::ThreadedSparseMatrixCSR, args...; kwargs...)
start_assemble(K.A, args...;kwargs...)
end

# struct RHSDataCSR{T}
# m::T
# constrained_rows::SparseMatrixCSR{T, Int}
Expand Down
Loading