From 09c355b9161986ac043f93ff9976a756fe23ed5e Mon Sep 17 00:00:00 2001 From: Kristoffer Carlsson Date: Thu, 29 Nov 2018 17:40:55 -0500 Subject: [PATCH] make backwards compatible --- Manifest.toml | 340 +++++++++++++++++++++++++++++++++++++ Project.toml | 33 ++++ src/problems_elasticity.jl | 40 ++--- src/solvers.jl | 29 ++-- test/runtests.jl | 2 +- test/test_heat_4.jl | 2 +- 6 files changed, 414 insertions(+), 32 deletions(-) create mode 100644 Manifest.toml create mode 100644 Project.toml diff --git a/Manifest.toml b/Manifest.toml new file mode 100644 index 0000000..4286329 --- /dev/null +++ b/Manifest.toml @@ -0,0 +1,340 @@ +[[AbaqusReader]] +deps = ["Nullables", "Test"] +git-tree-sha1 = "0c6f5373eeb3f10f8f8405038c071b18d23907f0" +uuid = "bc6b9049-e460-56d6-94b4-a597b2c0390d" +version = "0.2.2" + +[[Arpack]] +deps = ["BinaryProvider", "Libdl", "LinearAlgebra", "Random", "SparseArrays", "Test"] +git-tree-sha1 = "1ce1ce9984683f0b6a587d5bdbc688ecb480096f" +uuid = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97" +version = "0.3.0" + +[[AsterReader]] +deps = ["FEMBase", "HDF5", "LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "4c43c84e501df1886aa10495e032c5c7da398d0b" +uuid = "cb1a753d-6b7b-52e3-9bfe-57d99d445c39" +version = "0.2.0" + +[[Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[BinDeps]] +deps = ["Compat", "Libdl", "SHA", "URIParser"] +git-tree-sha1 = "12093ca6cdd0ee547c39b1870e0c9c3f154d9ca9" +uuid = "9e28174c-4ba2-5203-b857-d8d62c4213ee" +version = "0.8.10" + +[[BinaryProvider]] +deps = ["Libdl", "Pkg", "SHA", "Test"] +git-tree-sha1 = "055eb2690182ebc31087859c3dd8598371d3ef9e" +uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232" +version = "0.5.3" + +[[Blosc]] +deps = ["BinaryProvider", "CMakeWrapper", "Compat", "Libdl"] +git-tree-sha1 = "71fb23581e1f0b0ae7be8ccf0ebfb3600e23ca41" +uuid = "a74b3585-a348-5f62-a45c-50e91977d574" +version = "0.5.1" + +[[BufferedStreams]] +deps = ["Compat", "Test"] +git-tree-sha1 = "5d55b9486590fdda5905c275bb21ce1f0754020f" +uuid = "e1450e63-4bb3-523b-b2a4-4ffa8c0fd77d" +version = "1.0.0" + +[[CMake]] +deps = ["BinDeps", "Libdl", "Test"] +git-tree-sha1 = "74853a75c26a4a73ac391ee26ee29ebeb5583d9f" +uuid = "631607c0-34d2-5d66-819e-eb0f9aa2061a" +version = "1.1.0" + +[[CMakeWrapper]] +deps = ["BinDeps", "CMake", "Libdl", "Parameters", "Test"] +git-tree-sha1 = "2b43d451639984e3571951cc687b8509b0a86c6d" +uuid = "d5fb7624-851a-54ee-a528-d3f3bac0b4a0" +version = "0.2.2" + +[[Calculus]] +deps = ["Compat"] +git-tree-sha1 = "f60954495a7afcee4136f78d1d60350abd37a409" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.4.1" + +[[CommonSubexpressions]] +deps = ["Test"] +git-tree-sha1 = "efdaf19ab11c7889334ca247ff4c9f7c322817b0" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.2.0" + +[[Compat]] +deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] +git-tree-sha1 = "ec61a16eed883ad0cfa002d7489b3ce6d039bb9a" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "1.4.0" + +[[Crayons]] +deps = ["Test"] +git-tree-sha1 = "3017c662a988bcb8a3f43306a793617c6524d476" +uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" +version = "1.0.0" + +[[Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[DelimitedFiles]] +deps = ["Mmap"] +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" + +[[DiffResults]] +deps = ["Compat", "StaticArrays"] +git-tree-sha1 = "db8acf46717b13d6c48deb7a12007c7f85a70cf7" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "0.0.3" + +[[DiffRules]] +deps = ["Random", "Test"] +git-tree-sha1 = "c49ec69428ffea0c1d1bbdc63d1a70f5df5860ad" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "0.0.7" + +[[Distributed]] +deps = ["LinearAlgebra", "Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[FEMBase]] +deps = ["FEMBasis", "FEMQuad", "LinearAlgebra", "SparseArrays", "Statistics", "Test", "TimerOutputs"] +path = "../FEMBase" +uuid = "fbcbbc08-f1bf-5204-9233-b69f5d396135" +version = "0.2.1+" + +[[FEMBasis]] +deps = ["Calculus", "LinearAlgebra", "Test"] +git-tree-sha1 = "aa935fc1c3daeca832945d5282c8dbcad8b1c252" +uuid = "353fb843-c566-51e6-ba49-78b3e3d5ebb5" +version = "0.2.0" + +[[FEMBeam]] +deps = ["FEMBase", "LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "c848335c3b921897b0419dba7d1297eb98df03ec" +uuid = "962f5c4a-ca9e-56d3-a659-14f0d9baaf78" +version = "0.3.0" + +[[FEMQuad]] +deps = ["Test"] +git-tree-sha1 = "7bb06e83f551212fdbd9b1197616159e414ef3bb" +uuid = "be8e8821-3f6f-54c2-987c-d2773c3a52cb" +version = "0.2.0" + +[[FEMSparse]] +deps = ["LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "76d4c475da886db1d76ef96e368c3b67a37b7910" +repo-rev = "kc/csc2" +repo-url = "https://github.com/JuliaFEM/FEMSparse.jl" +uuid = "55713501-a877-5f50-80b5-148fff7ff4b3" +version = "0.0.0" + +[[ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "InteractiveUtils", "LinearAlgebra", "NaNMath", "Random", "SparseArrays", "SpecialFunctions", "StaticArrays", "Test"] +git-tree-sha1 = "d8f3e0f19d0d546aa92eb1cd67cd3e515768d9f7" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.0" + +[[HDF5]] +deps = ["BinDeps", "Blosc", "Distributed", "Homebrew", "Libdl", "LinearAlgebra", "Mmap", "Pkg", "Test", "WinRPM"] +git-tree-sha1 = "8c3bcdb44db436cd20106e2381e1c1ac96aa0ee3" +uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" +version = "0.10.2" + +[[HTTPClient]] +deps = ["Compat", "LibCURL"] +git-tree-sha1 = "161d5776ae8e585ac0b8c20fb81f17ab755b3671" +uuid = "0862f596-cf2d-50af-8ef4-f2be67dfa83f" +version = "0.2.1" + +[[HeatTransfer]] +deps = ["FEMBase", "LinearAlgebra", "Pkg", "SparseArrays", "Test"] +git-tree-sha1 = "2a2d51f4eba4ceea7f00111a3cf0f0f91c6b1b78" +uuid = "4030f512-cedb-5907-ac7f-4ab05ad75ee7" +version = "0.3.0" + +[[Homebrew]] +deps = ["BinDeps", "InteractiveUtils", "JSON", "Libdl", "Test", "Unicode"] +git-tree-sha1 = "5582ec74f735cf8d12e562a2e65c47f34063bd51" +uuid = "d9be37ee-ecc9-5288-90f1-b9ca67657a75" +version = "0.7.0" + +[[InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[JSON]] +deps = ["Dates", "Distributed", "Mmap", "Sockets", "Test", "Unicode"] +git-tree-sha1 = "1f7a25b53ec67f5e9422f1f551ee216503f4a0fa" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.20.0" + +[[LibCURL]] +deps = ["BinaryProvider", "Compat", "Libdl", "Printf"] +git-tree-sha1 = "6339c87cb76923a3cf947fcd213cbc364355c9c9" +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.4.1" + +[[LibExpat]] +deps = ["Compat"] +git-tree-sha1 = "fde352ec13479e2f90e57939da2440fb78c5e388" +uuid = "522f3ed2-3f36-55e3-b6df-e94fee9b0c07" +version = "0.5.0" + +[[LibGit2]] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[Libz]] +deps = ["BufferedStreams", "Random", "Test"] +git-tree-sha1 = "d405194ffc0293c3519d4f7251ce51baac9cc871" +uuid = "2ec943e9-cfe8-584d-b93d-64dcb6d567b7" +version = "1.0.0" + +[[LightXML]] +deps = ["BinaryProvider", "Libdl", "Test"] +git-tree-sha1 = "aeec7a341652d47bc773475a42952fa78eccd7cc" +uuid = "9c8b4983-aa76-5018-a973-4c85ecc9e179" +version = "0.8.0" + +[[LinearAlgebra]] +deps = ["Libdl"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[MortarContact2D]] +deps = ["FEMBase", "LinearAlgebra", "SparseArrays", "Statistics", "Test"] +git-tree-sha1 = "7ab9145a90cdb71b785a62a60b5b619838580a9f" +uuid = "048d6160-1a0b-53cd-a5b3-316946cc8d80" +version = "0.3.0" + +[[MortarContact2DAD]] +deps = ["FEMBase", "ForwardDiff", "LinearAlgebra", "SparseArrays", "Statistics", "Test"] +git-tree-sha1 = "eb2eabdfb19a3adafe33b66e8d3c2d45b94e9ed0" +uuid = "c1673bdb-6aff-560b-99da-c78ea6da9af3" +version = "0.2.0" + +[[NaNMath]] +deps = ["Compat"] +git-tree-sha1 = "ce3b85e484a5d4c71dd5316215069311135fa9f2" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "0.3.2" + +[[Nullables]] +deps = ["Compat"] +git-tree-sha1 = "ae1a63457e14554df2159b0b028f48536125092d" +uuid = "4d1e1d77-625e-5b40-9113-a560ec7a8ecd" +version = "0.0.8" + +[[OrderedCollections]] +deps = ["Random", "Serialization", "Test"] +git-tree-sha1 = "85619a3f3e17bb4761fe1b1fd47f0e979f964d5b" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.0.2" + +[[Parameters]] +deps = ["Markdown", "OrderedCollections", "REPL", "Test"] +git-tree-sha1 = "40f540ec96e50c0b2b9efdb11b5e4d0c63f90923" +uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" +version = "0.10.1" + +[[Pkg]] +deps = ["Dates", "LibGit2", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" + +[[Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[Random]] +deps = ["Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[Reexport]] +deps = ["Pkg"] +git-tree-sha1 = "7b1d07f411bc8ddb7977ec7f377b97b158514fe0" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "0.2.0" + +[[SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" + +[[Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[SparseArrays]] +deps = ["LinearAlgebra", "Random"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[SpecialFunctions]] +deps = ["BinDeps", "BinaryProvider", "Libdl", "Test"] +git-tree-sha1 = "0b45dc2e45ed77f445617b99ff2adf0f5b0f23ea" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "0.7.2" + +[[StaticArrays]] +deps = ["InteractiveUtils", "LinearAlgebra", "Random", "Statistics", "Test"] +git-tree-sha1 = "97c4bf0f647488dd7ac01ea12be5885f88762938" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "0.10.0" + +[[Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[[Test]] +deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[TimerOutputs]] +deps = ["Crayons", "Printf", "Test", "Unicode"] +git-tree-sha1 = "89a9bd610d6bfd62a7c2b85112762b99b979fe5f" +uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" +version = "0.4.0" + +[[URIParser]] +deps = ["Test", "Unicode"] +git-tree-sha1 = "6ddf8244220dfda2f17539fa8c9de20d6c575b69" +uuid = "30578b45-9adc-5946-b283-645ec420af67" +version = "0.4.0" + +[[UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[WinRPM]] +deps = ["BinDeps", "Compat", "HTTPClient", "LibExpat", "Libdl", "Libz", "URIParser"] +git-tree-sha1 = "2a889d320f3b77d17c037f295859fe570133cfbf" +uuid = "c17dfb99-b4f7-5aad-8812-456da1ad7187" +version = "0.4.2" diff --git a/Project.toml b/Project.toml new file mode 100644 index 0000000..d010ff2 --- /dev/null +++ b/Project.toml @@ -0,0 +1,33 @@ +name = "JuliaFEM" +uuid = "f80590ac-b429-510a-8a99-e7c46989f22d" +version = "0.5.0" + +[deps] +AbaqusReader = "bc6b9049-e460-56d6-94b4-a597b2c0390d" +Arpack = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97" +AsterReader = "cb1a753d-6b7b-52e3-9bfe-57d99d445c39" +FEMBase = "fbcbbc08-f1bf-5204-9233-b69f5d396135" +FEMBasis = "353fb843-c566-51e6-ba49-78b3e3d5ebb5" +FEMBeam = "962f5c4a-ca9e-56d3-a659-14f0d9baaf78" +FEMQuad = "be8e8821-3f6f-54c2-987c-d2773c3a52cb" +FEMSparse = "55713501-a877-5f50-80b5-148fff7ff4b3" +ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" +HDF5 = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" +HeatTransfer = "4030f512-cedb-5907-ac7f-4ab05ad75ee7" +LightXML = "9c8b4983-aa76-5018-a973-4c85ecc9e179" +LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +MortarContact2D = "048d6160-1a0b-53cd-a5b3-316946cc8d80" +MortarContact2DAD = "c1673bdb-6aff-560b-99da-c78ea6da9af3" +Parameters = "d96e819e-fc66-5662-9728-84c9c7592b0a" +Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +TimerOutputs = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" + +[extras] +Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[targets] +test = ["Test", "Pkg", "Documenter"] diff --git a/src/problems_elasticity.jl b/src/problems_elasticity.jl index e2b773d..b91ea78 100644 --- a/src/problems_elasticity.jl +++ b/src/problems_elasticity.jl @@ -53,8 +53,6 @@ function get_formulation_type(problem::Problem{Elasticity}) return :incremental end - -using InteractiveUtils """ assemble!(assembly:Assembly, problem::Problem{Elasticity}, elements, time) @@ -76,26 +74,23 @@ function assemble!(assembly::Assembly, problem::Problem{Elasticity}, elements::Vector{T}, time, formulation) where {T <: Element} if problem.assemble_parallel + @assert problem.assemble_csc # Threaded assembly - - assemblers = [FEMSparse.start_assemble(assembly.K, assembly.f) for i in 1:Threads.nthreads()] + assemblers = [FEMSparse.start_assemble(assembly.K_csc, assembly.f_csc) for i in 1:Threads.nthreads()] local_buffers = [allocate_buffer(problem, elements) for i in 1:Threads.nthreads()] - #TODO: We have to be a bit careful here, the index of the element is no longer - # - # should only loop over elements that exist in `elements` here for (color, elements) in FEMBase.get_color_ranges(elements) - Threads.@threads for i in 1:length(elements) + for i in 1:length(elements) element = elements[i] tid = Threads.threadid() - assemble_element!(assembly, assemblers[tid], problem, element, local_buffers[tid], time, formulation) + assemble_element!(assembly, assemblers[tid], problem, element, local_buffers[tid], time, formulation, true) end end else # Normal assembly local_buffer = allocate_buffer(problem, elements) - assembler = FEMSparse.start_assemble(assembly.K, assembly.f) + assembler = FEMSparse.start_assemble(assembly.K_csc, assembly.f_csc) for i in 1:length(elements) - assemble_element!(assembly, assembler, problem, elements[i], local_buffer, time, formulation) + assemble_element!(assembly, assembler, problem, elements[i], local_buffer, time, formulation, problem.assemble_csc) end end end @@ -193,7 +188,8 @@ function assemble_element!(assembly::Assembly, problem::Problem{Elasticity}, element::Element{El}, local_buffer::Elasticity3DLocalBuffers, - time, ::Type{Val{:continuum}}) where El<:Elasticity3DVolumeElements + time, ::Type{Val{:continuum}}, + use_csc = false) where El<:Elasticity3DVolumeElements props = problem.properties dim = get_unknown_field_dimension(problem) @@ -288,7 +284,6 @@ function assemble_element!(assembly::Assembly, stress_vec[:] = Dtan * strain_vec end - #= if material_model == :ideal_plasticity plastic_def = element("plasticity")[ip.id] @@ -313,7 +308,6 @@ function assemble_element!(assembly::Assembly, calculate_stress!(stress_vec, stress_last, dstrain_vec, plastic_strain, D, params, Dtan, yield_surface_, time, dt, Val{:type_3d}) end - =# :strain in props.store_fields && update!(ip, "strain", time => strain_vec) :stress in props.store_fields && update!(ip, "stress", time => stress_vec) @@ -388,11 +382,19 @@ function assemble_element!(assembly::Assembly, # Update f_ext in place to be f_ext - f_int f_ext .-= f_int - # add contributions to K, Kg, f - FEMSparse.assemble_local!(assembler, gdofs, Km, f_ext) + if use_csc + # add contributions to K, Kg, f + FEMSparse.assemble_local!(assembler, gdofs, Km, f_ext) - if props.geometric_stiffness - FEMSparse.assemble_local_matrix!(assembler, gdofs, Kg) + if props.geometric_stiffness + FEMSparse.assemble_local_matrix!(assembler, gdofs, Kg) + end + else + add!(assembly.f, gdofs, f_ext) + add!(assembly.K, gdofs, gdofs, Km) + if props.geometric_stiffness + add!(assembly.Kg, gdofs, gdofs, Kg) + end end return nothing @@ -445,7 +447,7 @@ function assemble!(assembly::Assembly, end gdofs = get_gdofs(problem, element) - FEMSparse.assemble_local_vector!(assembly.f, gdofs, f) + add!(assembly.f, gdofs, f) end end diff --git a/src/solvers.jl b/src/solvers.jl index 552feb7..e3992ea 100644 --- a/src/solvers.jl +++ b/src/solvers.jl @@ -61,28 +61,35 @@ function get_field_assembly(solver::Solver) M = problem.assembly.M K = problem.assembly.K f = problem.assembly.f + K_csc = problem.assembly.K_csc + f_csc = problem.assembly.f_csc Kg = problem.assembly.Kg fg = problem.assembly.fg for problem in problems[2:end] append!(M, problem.assembly.M) - K += problem.assembly.K + append!(K, problem.assembly.K) append!(Kg, problem.assembly.Kg) - f += problem.assembly.f + append!(f, problem.assembly.f) + # Use in place addition with .+= ? + K_csc += problem.assembly.K_csc + f_csc += problem.assembly.f_csc append!(fg, problem.assembly.fg) end N = size(K, 1) M = sparse(M, N, N) + K = sparse(K, N, N) if nnz(K) == 0 @warn("Field assembly seems to be empty. Check that elements are ", "pushed to problem and formulation is correct.") end + f = sparse(f, N, 1) Kg = sparse(Kg, N, N) fg = sparse(fg, N, 1) - return M, K, Kg, f, fg + return M, problem.assemble_csc ? K_csc : K, Kg, problem.assemble_csc ? f_csc : f, fg end """ Loop through boundary assemblies and check for possible overconstrain situations. """ @@ -141,11 +148,11 @@ function get_boundary_assembly(solver::Solver, N) g = spzeros(N, 1) for problem in get_boundary_problems(solver) assembly = problem.assembly - # K_ = assembly.K + K_ = sparse(assembly.K, N, N) C1_ = sparse(assembly.C1, N, N) C2_ = sparse(assembly.C2, N, N) D_ = sparse(assembly.D, N, N) - # f_ = assembly.f + f_ = sparse(assembly.f, N, 1) g_ = sparse(assembly.g, N, 1) for dof in assembly.removed_dofs @info("$(problem.name): removing dof $dof from assembly") @@ -166,12 +173,12 @@ function get_boundary_assembly(solver::Solver, N) error("overconstrained dofs, not solving problem.") end - #K += K_ - C1 += C1_ - C2 += C2_ - D += D_ - #f += f_ - g += g_ + K .+= K_ + C1 .+= C1_ + C2 .+= C2_ + D .+= D_ + f .+= f_ + g .+= g_ end return K, C1, C2, D, f, g end diff --git a/test/runtests.jl b/test/runtests.jl index 7d4ff3e..afba444 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -3,7 +3,7 @@ using JuliaFEM, Test -include("../docs/make.jl") +# include("../docs/make.jl") @testset "JuliaFEM.jl" begin @testset "test_dirichlet.jl" begin diff --git a/test/test_heat_4.jl b/test/test_heat_4.jl index e613541..5dd86db 100644 --- a/test/test_heat_4.jl +++ b/test/test_heat_4.jl @@ -39,7 +39,7 @@ run!(analysis) # two increments, nonlinear solver -delete!(element, "temperature") +delete!(element.fields, "temperature") analysis = Analysis(Nonlinear) add_problems!(analysis, problem, bc)