FEVector
A FEVector consists of FEVectorBlocks that share a common one-dimensional array. Each block is associated to a FESpace and can only write into a region of the common array specified by offsets that stores the degrees of freedom of that FEspace.
ExtendableFEMBase.FEVector
— Typestruct FEVector{T, Tv, Ti}
a plain array but with an additional layer of several FEVectorBlock subdivisions each carrying coefficients for their associated FESpace. The j-th block can be accessed by getindex(::FEVector, j) or by getindex(::FEVector, tag) if tags are associated. The full vector can be accessed via FEVector.entries
ExtendableFEMBase.FEVector
— MethodFEVector{T}(FES; name = nothing, tags = nothing, kwargs...) where T <: Real
Creates FEVector that has one block if FES is a single FESpace, and a blockwise FEVector if FES is a vector of FESpaces. Optionally a name for the vector (as a String) or each of the blocks (as a vector of Strings), or tags (as an Array{Any}) for the blocks can be specified.
ExtendableFEMBase.FEVectorBlock
— Typestruct FEVectorBlock{T, Tv, Ti, FEType, APT} <: AbstractArray{T, 1}
block of an FEVector that carries coefficients for an associated FESpace and can be assigned as an AbstractArray (getindex, setindex, size, length)
Base.append!
— Methodappend!(
FEF::FEVector{T},
FES::FESpace{Tv, Ti, FEType, APT};
name,
tag
) -> Int64
Overloaded append
function for FEVector
that adds a FEVectorBlock at the end.
Base.fill!
— Methodfill!(b::FEVectorBlock, value)
Overloaded fill
function for FEVectorBlock
(only fills the block, not the complete FEVector).
Base.length
— Methodlength(FEB::FEVectorBlock) -> Int64
Custom length
function for FEVectorBlock
that gives the coressponding number of degrees of freedoms of the associated FESpace
Base.length
— Methodlength(FEF::FEVector) -> Int64
Custom length
function for FEVector
that gives the number of defined FEMatrixBlocks in it
Base.show
— Methodshow(io::IO, FEF::FEVector)
Custom show
function for FEVector
that prints some information on its blocks.
Base.view
— Methodreturns a view of the part of the full FEVector that coressponds to the block.
ExtendableFEMBase.FESpaces
— MethodFESpaces(
FEV::FEVector{T, Tv, Ti}
) -> Vector{T} where T<:FESpace
Returns the vector of FEspaces for the blocks of the given FEVector.
ExtendableFEMBase.addblock!
— Methodaddblock!(
a::FEVectorBlock,
b::AbstractVector;
factor,
offset
)
Adds Array b to FEVectorBlock a.
ExtendableFEMBase.addblock!
— Methodaddblock!(a::FEVectorBlock, b::FEVectorBlock; factor)
Adds FEVectorBlock b to FEVectorBlock a.
LinearAlgebra.dot
— Methoddot(a::FEVectorBlock{T}, b::FEVectorBlock{T}) -> Any
Scalar product between two FEVEctorBlocks