pub struct Feti {
pub formulation: Formulation,
pub method: KrylovMethod,
pub partition: Partition,
pub preconditioner: Preconditioner,
pub rel_tol: Scalar,
}Expand description
FETI-DP solver for the linearized systems of a decomposable block.
The block is split by a Partition, and each subdomain is solved
independently, tied together through the corner DOFs and Lagrange
multipliers on the interface. Any elastic block is supported. The tangent
need not be symmetric, but then the dual solve must be GMRES, since
conjugate gradients, the default, needs a symmetric positive definite dual
operator, and is what refuses a tangent that is not.
Only zero-displacement boundary conditions are supported. At least enough DOFs must be pinned to remove every rigid-body mode of the whole block.
As the linear solver of a NewtonRaphson,
it works with a fixed equality constraint only, whose fixed DOFs are the
pinned ones.
Fields§
§formulation: Formulation§method: KrylovMethod§partition: Partition§preconditioner: Preconditioner§rel_tol: ScalarImplementations§
Source§impl Feti
impl Feti
pub fn solve<B>(
&self,
block: &B,
nodal_coordinates: &NodalCoordinates<3>,
boundary_conditions: &BoundaryConditions,
) -> Result<Vector, SolveError>where
B: DecomposableElements,
Trait Implementations§
Source§impl LinearSolver for Feti
Available on crate feature fem only.
impl LinearSolver for Feti
Available on crate feature
fem only.Source§type Tangent = ElementSystems
type Tangent = ElementSystems
The tangent this solver works from.
Auto Trait Implementations§
impl Freeze for Feti
impl RefUnwindSafe for Feti
impl Send for Feti
impl Sync for Feti
impl Unpin for Feti
impl UnsafeUnpin for Feti
impl UnwindSafe for Feti
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more