mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-10-02 06:13:59 +00:00
substructuring, fixed tests, possibility to save to integration points
This commit is contained in:
+22
-8
@@ -21,34 +21,48 @@ fields
|
||||
type IntegrationPoint
|
||||
xi :: Vector
|
||||
weight :: Float64
|
||||
fields :: FieldSet
|
||||
fields :: Dict{ASCIIString, Field}
|
||||
changed :: Bool
|
||||
end
|
||||
|
||||
function IntegrationPoint(xi, weight)
|
||||
return IntegrationPoint(xi, weight, FieldSet())
|
||||
return IntegrationPoint(xi, weight, FieldSet(), false)
|
||||
end
|
||||
|
||||
function Base.convert(::Type{Number}, ip::IntegrationPoint)
|
||||
function setindex!{T<:ForwardDiff.ForwardDiffNumber}(ip::IntegrationPoint, data::Array{T,2}, field_name::ASCIIString)
|
||||
data = ForwardDiff.get_value(data)
|
||||
setindex!(ip, data, field_name)
|
||||
end
|
||||
function setindex!(ip::IntegrationPoint, data, field_name)
|
||||
ip.fields[field_name] = Field(data)
|
||||
ip.changed = true
|
||||
end
|
||||
|
||||
function getindex(ip::IntegrationPoint, field_name::ASCIIString)
|
||||
ip.fields[field_name]
|
||||
end
|
||||
|
||||
function convert(::Type{Number}, ip::IntegrationPoint)
|
||||
return ip.xi
|
||||
end
|
||||
|
||||
function Base.call(field::CVTI, ip::IntegrationPoint)
|
||||
function call(field::CVTI, ip::IntegrationPoint)
|
||||
return call(field, ip.xi)
|
||||
end
|
||||
|
||||
function Base.call(basis::CVTI, field::DCTI, ip::IntegrationPoint)
|
||||
function call(basis::CVTI, field::DCTI, ip::IntegrationPoint)
|
||||
call(basis, field, ip.xi)
|
||||
end
|
||||
|
||||
function Base.call(basis::CVTI, field::DVTI, ip::IntegrationPoint, ::Type{Val{:grad}})
|
||||
function call(basis::CVTI, field::DVTI, ip::IntegrationPoint, ::Type{Val{:grad}})
|
||||
call(basis, field, ip.xi, Val{:grad})
|
||||
end
|
||||
|
||||
function Base.call(basis::CVTI, field::DVTI, ip::IntegrationPoint)
|
||||
function call(basis::CVTI, field::DVTI, ip::IntegrationPoint)
|
||||
call(basis, field, ip.xi)
|
||||
end
|
||||
|
||||
function Base.call(basis::CVTI, geometry::DVTI, field::DVTI, ip::IntegrationPoint, ::Type{Val{:grad}})
|
||||
function call(basis::CVTI, geometry::DVTI, field::Union{DCTI, DVTI}, ip::IntegrationPoint, ::Type{Val{:grad}})
|
||||
call(basis, geometry, field, ip.xi, Val{:grad})
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user