mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-08-06 04:21:33 +00:00
test(domains): add material element lab diagnostics
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# SPDX-FileCopyrightText: 2015-2026 Jukka Aho
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
using Test
|
||||
using LinearAlgebra
|
||||
using JuliaFEM
|
||||
|
||||
@testset "Material element lab (symmetric uniaxial Hex8 coupon)" begin
|
||||
L = 1.0
|
||||
mesh = material_lab_single_hex8_brick(; L = L)
|
||||
@test nelements(mesh) == 1
|
||||
|
||||
S = @DOFSet{u::DOF{Displacement{3}, Vertex}}
|
||||
elements, handler = create_elements!(mesh, Element{Hex8, Lagrange{1}, S})
|
||||
|
||||
δx = 1.0e-4
|
||||
E = 210e9
|
||||
ν = 0.3
|
||||
u = material_lab_linear_elastic_uniaxial_solve(mesh, handler, elements, E, ν, δx)
|
||||
|
||||
@test all(isfinite, u)
|
||||
for nid in get_nodes_in_set(mesh, :xmax)
|
||||
ud = get_node_dofs(handler, Int(nid))
|
||||
@test u[ud[1]] ≈ δx rtol = 1e-8 atol = 1e-12
|
||||
end
|
||||
for nid in get_nodes_in_set(mesh, :xmin)
|
||||
ud = get_node_dofs(handler, Int(nid))
|
||||
@test abs(u[ud[1]]) < 1e-12
|
||||
end
|
||||
for nid in get_nodes_in_set(mesh, :ymin)
|
||||
ud = get_node_dofs(handler, Int(nid))
|
||||
@test abs(u[ud[2]]) < 1e-12
|
||||
end
|
||||
for nid in get_nodes_in_set(mesh, :zmin)
|
||||
ud = get_node_dofs(handler, Int(nid))
|
||||
@test abs(u[ud[3]]) < 1e-12
|
||||
end
|
||||
|
||||
bc = hex8_symmetric_uniaxial_eliminated_dirichlet(mesh, handler, δx)
|
||||
@test bc isa EliminatedDirichlet
|
||||
@test length(bc.fixed_dofs) == length(bc.values)
|
||||
end
|
||||
Reference in New Issue
Block a user