conspire::fem

Trait ElasticFiniteElementBlock

Source
pub trait ElasticFiniteElementBlock<'a, C, F, const G: usize, const N: usize>
where C: Elastic<'a>, F: ElasticFiniteElement<'a, C, G, N>,
{ // Required methods fn nodal_forces( &self, nodal_coordinates: &TensorRank1Vec<3, 1>, ) -> Result<TensorRank1Vec<3, 1>, ConstitutiveError>; fn nodal_stiffnesses( &self, nodal_coordinates: &TensorRank1Vec<3, 1>, ) -> Result<TensorRank2Vec2D<3, 1, 1>, ConstitutiveError>; fn solve( &self, initial_coordinates: TensorRank1Vec<3, 1>, places_d: Option<&[&[usize]]>, values_d: Option<&[Scalar]>, places_n: Option<&[&[usize]]>, values_n: Option<&[Scalar]>, optimization: GradientDescent, ) -> Result<TensorRank1Vec<3, 1>, OptimizeError>; }

Required Methods§

Source

fn nodal_forces( &self, nodal_coordinates: &TensorRank1Vec<3, 1>, ) -> Result<TensorRank1Vec<3, 1>, ConstitutiveError>

Source

fn nodal_stiffnesses( &self, nodal_coordinates: &TensorRank1Vec<3, 1>, ) -> Result<TensorRank2Vec2D<3, 1, 1>, ConstitutiveError>

Source

fn solve( &self, initial_coordinates: TensorRank1Vec<3, 1>, places_d: Option<&[&[usize]]>, values_d: Option<&[Scalar]>, places_n: Option<&[&[usize]]>, values_n: Option<&[Scalar]>, optimization: GradientDescent, ) -> Result<TensorRank1Vec<3, 1>, OptimizeError>

Implementors§

Source§

impl<'a, C, F, const G: usize, const N: usize> ElasticFiniteElementBlock<'a, C, F, G, N> for ElementBlock<F, N>
where C: Elastic<'a>, F: ElasticFiniteElement<'a, C, G, N>, Self: FiniteElementBlockMethods<'a, C, F, G, N>,