mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-10-02 06:13:59 +00:00
data types defined
This commit is contained in:
+45
-3
@@ -2,7 +2,49 @@
|
||||
# License is MIT: see https://github.com/JuliaFEM/JuliaFEM.jl/blob/master/LICENSE.md
|
||||
|
||||
using FactCheck
|
||||
using JuliaFEM: test_element
|
||||
using JuliaFEM: Element, Basis, FieldSet
|
||||
|
||||
# prototype element
|
||||
type MockElement <: Element
|
||||
connectivity :: Array{Int, 1}
|
||||
basis :: Basis
|
||||
fields :: Dict{Symbol, FieldSet}
|
||||
end
|
||||
function MockElement(connectivity)
|
||||
h(xi) = [
|
||||
(1-xi[1])*(1-xi[2])/4
|
||||
(1+xi[1])*(1-xi[2])/4
|
||||
(1+xi[1])*(1+xi[2])/4
|
||||
(1-xi[1])*(1+xi[2])/4]
|
||||
dh(xi) = [
|
||||
-(1-xi[2])/4.0 -(1-xi[1])/4.0
|
||||
(1-xi[2])/4.0 -(1+xi[1])/4.0
|
||||
(1+xi[2])/4.0 (1+xi[1])/4.0
|
||||
-(1+xi[2])/4.0 (1-xi[1])/4.0]
|
||||
basis = Basis(h, dh)
|
||||
MockElement(connectivity, basis, Dict())
|
||||
end
|
||||
JuliaFEM.get_number_of_basis_functions(el::Type{MockElement}) = 4
|
||||
JuliaFEM.get_element_dimension(el::Type{MockElement}) = 2
|
||||
|
||||
|
||||
using JuliaFEM: test_element
|
||||
facts("test test_element against mock element") do
|
||||
test_element(MockElement)
|
||||
end
|
||||
|
||||
|
||||
using JuliaFEM: new_fieldset!, add_field!, Field, get_fieldset
|
||||
facts("test adding fieldsets and fields to element") do
|
||||
el = MockElement([1, 2, 3, 4])
|
||||
fieldset = new_fieldset!(el, "geometry")
|
||||
field1 = Field(0.0, [0.0, 0.0, 0.0, 0.0])
|
||||
add_field!(el, "geometry", field1)
|
||||
field2 = Field(1.0, [1.0, 1.0, 1.0, 1.0])
|
||||
add_field!(fieldset, field2)
|
||||
fields = get_fieldset(el, "geometry")
|
||||
@fact length(fields) --> 2
|
||||
@fact fields[1] --> field1
|
||||
@fact fields[2] --> field2
|
||||
end
|
||||
|
||||
using JuliaFEM: Quad4
|
||||
test_element(Quad4)
|
||||
|
||||
Reference in New Issue
Block a user