mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-09-17 01:02:13 +00:00
refactor(topology): Update Quadrilateral reference_coordinates to SVector of Vec
- Changed Quad4: tuple of tuples → SVector of Vec{2,Float64}
- Added Quad8: SVector with 4 corners + 4 edge midpoints
- Added Quad9: SVector with 4 corners + 4 edge midpoints + 1 center node
- All return SVector(Vec{2}(...), ...) format with comments
This commit is contained in:
@@ -21,7 +21,39 @@ nnodes(::Quadrilateral{N}) where {N} = N
|
||||
dim(::Quadrilateral{N}) where {N} = 2
|
||||
|
||||
function reference_coordinates(::Quadrilateral{4})
|
||||
return ((-1.0, -1.0), (1.0, -1.0), (1.0, 1.0), (-1.0, 1.0))
|
||||
return SVector(
|
||||
Vec{2,Float64}((-1.0, -1.0)),
|
||||
Vec{2,Float64}((1.0, -1.0)),
|
||||
Vec{2,Float64}((1.0, 1.0)),
|
||||
Vec{2,Float64}((-1.0, 1.0))
|
||||
)
|
||||
end
|
||||
|
||||
function reference_coordinates(::Quadrilateral{8})
|
||||
return SVector(
|
||||
Vec{2,Float64}((-1.0, -1.0)), # N1: Corner
|
||||
Vec{2,Float64}((1.0, -1.0)), # N2: Corner
|
||||
Vec{2,Float64}((1.0, 1.0)), # N3: Corner
|
||||
Vec{2,Float64}((-1.0, 1.0)), # N4: Corner
|
||||
Vec{2,Float64}((0.0, -1.0)), # N5: Edge midpoint
|
||||
Vec{2,Float64}((1.0, 0.0)), # N6: Edge midpoint
|
||||
Vec{2,Float64}((0.0, 1.0)), # N7: Edge midpoint
|
||||
Vec{2,Float64}((-1.0, 0.0)) # N8: Edge midpoint
|
||||
)
|
||||
end
|
||||
|
||||
function reference_coordinates(::Quadrilateral{9})
|
||||
return SVector(
|
||||
Vec{2,Float64}((-1.0, -1.0)), # N1: Corner
|
||||
Vec{2,Float64}((1.0, -1.0)), # N2: Corner
|
||||
Vec{2,Float64}((1.0, 1.0)), # N3: Corner
|
||||
Vec{2,Float64}((-1.0, 1.0)), # N4: Corner
|
||||
Vec{2,Float64}((0.0, -1.0)), # N5: Edge midpoint
|
||||
Vec{2,Float64}((1.0, 0.0)), # N6: Edge midpoint
|
||||
Vec{2,Float64}((0.0, 1.0)), # N7: Edge midpoint
|
||||
Vec{2,Float64}((-1.0, 0.0)), # N8: Edge midpoint
|
||||
Vec{2,Float64}((0.0, 0.0)) # N9: Center node
|
||||
)
|
||||
end
|
||||
|
||||
function edges(::Quadrilateral{N}) where {N}
|
||||
|
||||
Reference in New Issue
Block a user