pub enum Formulation {
Classical,
DualPrimal,
}Expand description
How the subdomains are tied together.
Classical FETI ties every interface DOF with a Lagrange multiplier, so there are no corners and every subdomain is floating unless boundary conditions pin it. A floating subdomain’s stiffness is singular along its rigid-body modes, so its local solve is a generalized inverse and the dual solve is projected against those modes.
A subdomain’s rigid-body modes are an exact kernel of its tangent only where it carries no stress, which a subdomain cut out of a stressed body does at its interface. Classical FETI takes them as the kernel anyway, so unlike FETI-DP it is inexact for a geometrically nonlinear tangent, by an error that grows with the strain: 2e-3 of the solution at the strains of the tests, and 1e-2 of the strain at most. Inside Newton’s method the solution is still the right one, but each step is approximate. The tangent must also be symmetric.
Its Dirichlet preconditioner is scaled by multiplicity, which it needs: unscaled it takes many times more iterations, growing with the number of subdomains. FETI-DP takes about the same either way, so it is not scaled.
Variants§
Trait Implementations§
Source§impl Clone for Formulation
impl Clone for Formulation
Source§fn clone(&self) -> Formulation
fn clone(&self) -> Formulation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more