Internal Documentation
Documentation for MinFEM.jl
's internal types and functions.
See the Public page of the library for the documentation of the public interface.
Contents
Types
MinFEM.Entity
— Typemutable struct Entity
Type holding the associated physical tag and the set of elements for one gmsh elementary entity.
Fields
PhysicalTag::Int64
: Unique physical idElements::Set{Int64}
: List of element indices
Quadrature
MinFEM.gausslegendre_points
— Functiongausslegendre_points(order::Int64) -> Vector{Float64}
Returns coordinates of the Gauss-Legendre quadrature points on the default interval [-1,1] for exact integration of polynomials up to the order given by a non-negative integer.
The maximum order of accuary is 9. The function is only used internally and thus does not perform an check on the given order, but will either provide 1st order for negative arguments or 9th order if the argument is larger.
MinFEM.gausslegendre_weights
— Functiongausslegendre_weights(order::Int64) -> Vector{Float64}
Returns weights of the Gauss-Legendre quadrature points on the default interval [-1,1] for exact integration of polynomials up to the ordergiven by a non-negative integer.
The maximum order of accuary is 9. The function is only used internally and thus does not perform an check on the given order, but will either provide 1st order for negative arguments or 9th order if the argument is larger.
MinFEM.compute_coordinates_line
— Functioncompute_coordinates_line(
order::Int64
) -> Vector{Vector{Float64}}
Returns coordinates of the Gauss-Legendre quadrature points on the 1-dimensional FEM reference element [0,1] for exact integration of polynomials up to the given order.
MinFEM.compute_coordinates_triangle
— Functioncompute_coordinates_triangle(
order::Int64
) -> Vector{Vector{Float64}}
Returns coordinates of the Gauss-Legendre quadrature points on the 2-dimensional FEM reference element for exact integration of polynomials up to the given order.
MinFEM.compute_coordinates_tetrahedron
— Functioncompute_coordinates_tetrahedron(
order::Int64
) -> Vector{Vector{Float64}}
Returns coordinates of the Gauss-Legendre quadrature points on the 3-dimensional FEM reference element for exact integration of polynomials up to the given order.
MinFEM.compute_weights_line
— Functioncompute_weights_line(order::Int64) -> Vector{Float64}
Returns weights of the Gauss-Legendre quadrature points on the 1-dimensional FEM reference element [0,1] for exact integration of polynomials up to the given order.
MinFEM.compute_weights_triangle
— Functioncompute_weights_triangle(order::Int64) -> Vector{Float64}
Returns weights of the Gauss-Legendre quadrature points on the 2-dimensional FEM reference element for exact integration of polynomials up to the given order.
MinFEM.compute_weights_tetrahedron
— Functioncompute_weights_tetrahedron(order::Int64) -> Vector{Float64}
Returns weights of the Gauss-Legendre quadrature points on the 3-dimensional FEM reference element for exact integration of polynomials up to the given order.
MinFEM.parentcoordinates
— Functionparentcoordinates(
x::Vector{Float64},
id::Int64
) -> Vector{Float64}
Maps coordinates given on the d-1 dimensional reference element to the coordinates on the boundary of the d dimensional reference element specified by the local boundary id. This can be used to map boundary quadrature points to the respective parent coordinates.
Mesh Import
MinFEM.import_mesh1
— Functionimport_mesh1(f::IOStream) -> Mesh
Returns mesh by continuing import process started by import_mesh()
for gmsh files of version 1.
MinFEM.import_mesh2
— Functionimport_mesh2(f::IOStream) -> Mesh
Returns mesh by continuing import process started by import_mesh()
for gmsh files of version 2.
MinFEM.import_mesh4
— Functionimport_mesh4(f::IOStream) -> Mesh
Returns mesh by continuing import process started by import_mesh()
for gmsh files of version 4.
MinFEM.gmsh_dimfromtype
— Functiongmsh_dimfromtype(t::Int64) -> Int64
Returns dimension of a gmsh elementary entitiy type.
MinFEM.gmsh_typefromdim
— Functiongmsh_typefromdim(d::Int64) -> Int64
Returns gmsh elementary element type for given dimension.
MinFEM.parentboundary
— Functionparentboundary(
nodes::Vector{Int64},
parentNodes::Vector{Int64}
) -> Union{Nothing, Int64}
Returns index of the boundary of the parent element spanned by the nodes.
MinFEM.sort_boundaryelement
— Functionsort_boundaryelement(
nodes::Array{Int64, N} where N,
parent::Array{Int64, N} where N
) -> Vector{Int64}
Sort nodes in boundary element corresponding to the order they occur in the parent element. Can be used to determine orientation of the edge.
Mesh Utility
MinFEM.base_jacobian
— Functionbase_jacobian(
coords::Vector{Vector{Float64}}
) -> Matrix{Float64}
Returns transformation matrix (jacobian) of the mapping from the FEM reference element to an element spanned by nodes at the given coordinates.
Commonly the coordinates correspond to an element in a mesh, but not necessarily have to.
base_jacobian(
mesh::Mesh,
nodes::Vector{Int64}
) -> Matrix{Float64}
Same as previous base_jacobian(...)
, but takes a mesh and set of nodes as arguments. Extracts coordinates from the mesh and passes them to the base function.
Commonly the coordinates correspond to one element in a mesh, but not necessarily have to.
base_jacobian(mesh::Mesh, element::Int64) -> Matrix{Float64}
Same as previous base_jacobian(...)
, but takes a mesh and an element id as arguments. Extracts coordinates of the support nodes from the mesh and passes them to the base function.
MinFEM.circleratio
— Functioncircleratio(coords::Vector{Vector{Float64}}) -> Float64
Returns ratio of inscribed to circumscribed circle radii for triangular element spanned by three given coordinates.
FEM Utility
MinFEM.stress_tensor
— Functionstress_tensor(
grad::AbstractMatrix{T} where T,
lambda::Float64,
mu::Float64
) -> AbstractMatrix{T} where T
Returns the local stress tensor for linear elasticity with constant coefficients λ, μ and gradient as argument.
MinFEM.strain_tensor
— Functionstrain_tensor(
grad::AbstractMatrix{T} where T
) -> AbstractMatrix{T} where T
Returns the local strain tensor for linear elasticity with gradient as argument.
Index
MinFEM.Entity
MinFEM.base_jacobian
MinFEM.circleratio
MinFEM.compute_coordinates_line
MinFEM.compute_coordinates_tetrahedron
MinFEM.compute_coordinates_triangle
MinFEM.compute_weights_line
MinFEM.compute_weights_tetrahedron
MinFEM.compute_weights_triangle
MinFEM.gausslegendre_points
MinFEM.gausslegendre_weights
MinFEM.gmsh_dimfromtype
MinFEM.gmsh_typefromdim
MinFEM.import_mesh1
MinFEM.import_mesh2
MinFEM.import_mesh4
MinFEM.parentboundary
MinFEM.parentcoordinates
MinFEM.sort_boundaryelement
MinFEM.strain_tensor
MinFEM.stress_tensor