Assemblers

FiniteElementContainers.assemble!Method
assemble!(
    R::AbstractArray{<:Number},
    Kv::AbstractArray{<:Number},
    R_el::AbstractArray{<:Number},
    Kv_el::AbstractArray{<:Number},
    conn::AbstractArray{<:Integer}
)

generic assembly method that directly goes into a vector for doing a residual and matrix vector product at once

source
FiniteElementContainers.assemble!Method
assemble!(
    R::AbstractArray{<:Number},
    R_el::AbstractArray{<:Number},
    conn::AbstractArray{<:Integer}
)

generic assembly method that directly goes into a vector

source
FiniteElementContainers.assemble_atomic!Method
assemble_atomic!(
    R::NodalField,
    R_el::AbstractVector{<:Number},
    conn::AbstractVector{<:Integer}
)

assembly method for just a residual vector

TODO need to add an Atomix lock here TODO add block_id to fspace or something like that

source
FiniteElementContainers.update_unknown_dofs!Method
update_unknown_dofs!(
    assembler::Union{DynamicAssembler, StaticAssembler},
    dof,
    fspaces,
    nodes_in::AbstractVector{<:Integer}
)

method that assumes first dof TODO move sorting of nodes up stream TODO remove other scratch unknowns and unknown_dofs arrays

source
FiniteElementContainers.DynamicAssemblerType
struct DynamicAssembler{Rtype, Itype, I<:AbstractArray{Itype, 1}, J<:AbstractArray{Itype, 1}, U<:AbstractArray{Itype, 1}, Sizes<:AbstractArray{Itype, 1}, Offsets<:AbstractArray{Itype, 1}, R<:NodalField, K<:AbstractArray{Rtype, 1}, M<:AbstractArray{Rtype, 1}, C1, C2, C3, C4, C5, C6, C7} <: Assembler{Rtype, Itype}
  • Is::AbstractVector

  • Js::AbstractVector

  • unknown_dofs::AbstractVector

  • block_sizes::AbstractVector

  • block_offsets::AbstractVector

  • residuals::NodalField

  • stiffnesses::AbstractVector

  • masses::AbstractVector

  • klasttouch::Any

  • csrrowptr::Any

  • csrcolval::Any

  • csrnzval::Any

  • csccolptr::Any

  • cscrowval::Any

  • cscnzval::Any

Assembler for dynamic problems without damping

Provides both a mass and stiffness matrix

source
FiniteElementContainers.StaticAssemblerType
struct StaticAssembler{Rtype, Itype, I<:AbstractArray{Itype, 1}, J<:AbstractArray{Itype, 1}, U<:AbstractArray{Itype, 1}, Sizes<:AbstractArray{Itype, 1}, Offsets<:AbstractArray{Itype, 1}, R<:NodalField, K<:AbstractArray{Rtype, 1}, C1, C2, C3, C4, C5, C6, C7} <: Assembler{Rtype, Itype}
  • Is::AbstractVector

  • Js::AbstractVector

  • unknown_dofs::AbstractVector

  • block_sizes::AbstractVector

  • block_offsets::AbstractVector

  • residuals::NodalField

  • stiffnesses::AbstractVector

  • klasttouch::Any

  • csrrowptr::Any

  • csrcolval::Any

  • csrnzval::Any

  • csccolptr::Any

  • cscrowval::Any

  • cscnzval::Any

Assembler for static or quasistatic problems where only a stiffness matrix is necessary

source
FiniteElementContainers.assemble!Function
assemble!(
    global_val::Vector,
    fspace,
    block_num,
    e,
    local_val
)

Assembly method for a scalar field stored as a size 1 vector

source
assemble!(
    R::AbstractArray{<:Number},
    R_el::AbstractArray{<:Number},
    conn::AbstractArray{<:Integer}
)

generic assembly method that directly goes into a vector

source
assemble!(
    global_val::NodalField,
    fspace,
    block_num,
    e,
    local_val
)

Assembly method for residuals

source
assemble!(
    R::AbstractArray{<:Number},
    Kv::AbstractArray{<:Number},
    R_el::AbstractArray{<:Number},
    Kv_el::AbstractArray{<:Number},
    conn::AbstractArray{<:Integer}
)

generic assembly method that directly goes into a vector for doing a residual and matrix vector product at once

source
assemble!(
    assembler::DynamicAssembler,
    K_el::AbstractMatrix{<:Number},
    M_el::AbstractMatrix{<:Number},
    block_id::Int64,
    el_id::Int64
) -> AbstractMatrix{<:Number}

assembly for stiffness matrix

source
assemble!(
    assembler::DynamicAssembler,
    dof::DofManager,
    fspace::FunctionSpace,
    X,
    U,
    block_id,
    residual_func,
    tangent_func,
    mass_func
)

Simple method for assembling in serial

source
assemble!(
    assembler::DynamicAssembler,
    dof::DofManager,
    fspaces,
    X,
    U,
    residual_func,
    tangent_func,
    mass_func
)
source

assembly method for matrix free assembler when functions for the element level residual and tangent_func are provided

source
assemble!(
    assembler::StaticAssembler,
    K_el::AbstractMatrix,
    block_id::Int64,
    el_id::Int64
) -> Any

assembly for stiffness matrix

source
assemble!(
    global_val::StaticAssembler,
    fspace,
    block_num,
    e,
    local_val
)
source