PotentialFlowModule

This module implements a Galerkin discretization of the potential flow with (non)homogenous Dirichlet and Neumann boundary conditions.

Potential flow around cylinder

./examples/immersed_potentialflow/cylinder.jl

Index

Taiga.FastDiagonalizationMethod
Taiga.FastDiagonalization(model::PotentialFlow{Dim, T}; method::Type{<:DataApproximationMethod} = Wachspress, kwargs)

Potential flow fast diagonalization preconditioner.

source
Taiga.PotentialFlowModule.LinearOperatorType
LinearOperator{Dim, T, B <: KroneckerProduct{T}, M <: AbstractMatrix{T}, V <: AbstractVector{T}}

Linear operator for PotentialFlow model.

Fields:

  • C::B: Kronecker product extraction operator
  • K::M: sparse stiffness matrix
  • b::V: forcing vector
  • cache₁::Vector{T}: mul! cache
  • cache₂::Vector{T}: mul! cache
source
Taiga.PotentialFlowModule.PotentialFlowType
PotentialFlow{Dim, T, M <: GeometricMapping{Dim}, V <: ScalarSplineSpace{Dim, T}, W <: Field{Dim}}

Galerkin formulation of potential flow. The solution field can be either velocity potential or stream function.

Fields:

  • F::M: geometric mapping
  • S::V: constrained solution space
  • Δ::Partition{Dim, T}: partition
  • uʰ::W: solution field
  • ūʰ::W: function satisfying Dirichlet boundary conditions
  • t::Function: traction vector
source
Taiga.PotentialFlowModule.PressureType
Pressure{Dim, T1, T2 <: Velocity{Dim}}

Pressure mapping for uniform far field flow.

Fields:

  • ρ::T1: density
  • p::T1: far field pressure
  • U::T1: far field velocity magnitude
  • velocity::T2: velocity field
source
Taiga.PotentialFlowModule.PullbackBoundaryType
PullbackBoundary{Dim, T <: GeometricMapping{Dim}}

Pullback of linear form.

Fields:

  • mapping::T: geometric mapping
  • traction::Function: traction vector
  • side::Int: side restriction (side <= 2Dim)
source
Taiga.PotentialFlowModule.assemble_bodyMethod
assemble_body(acc::ElementAccessor{Dim}, partition::Partition{Dim}, pullback::PullbackBody{Dim})

Assemble unconstrained stiffness matrix.

Arguments:

  • acc: element accessor
  • partition: partition
  • pullback: bilinear form pullback
source
Taiga.PotentialFlowModule.assemble_boundaryMethod
assemble_boundary(acc::ElementAccessor{Dim}, partition::Partition{Dim, T}, pullbacks_boundary::NTuple{N, PullbackBoundary{M}})

Assemble right hand side vector.

Arguments:

  • acc: element accessor
  • partition: partition
  • pullbacks_boundary: tuple of 2Dim linear form pullbacks restricted to each boundary
source
Taiga.apply_particular_solutionMethod
Taiga.apply_particular_solution(L::LinearOperator, model::PotentialFlow, x₀::V)

Return particular solution.

Arguments:

  • L: linear operator
  • model: model
  • x₀: homogeneous solution
source
Taiga.forcing!Method
Taiga.forcing!(b::AbstractVector, L::LinearOperator, model::PotentialFlow)

Update forcing vector.

Arguments:

  • b: cache vector
  • L: linear operator
  • model: model
source
Taiga.forcingMethod
Taiga.forcing(L::LinearOperator, model::PotentialFlow)

Return forcing vector.

source