pub struct ElementBlock<F, const N: usize> { /* private fields */ }
Trait Implementations§
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>,
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>,
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>
Source§impl<'a, C, F, const G: usize, const N: usize> FiniteElementBlock<'a, C, F, G, N> for ElementBlock<F, N>where
C: Constitutive<'a>,
F: FiniteElement<'a, C, G, N>,
impl<'a, C, F, const G: usize, const N: usize> FiniteElementBlock<'a, C, F, G, N> for ElementBlock<F, N>where
C: Constitutive<'a>,
F: FiniteElement<'a, C, G, N>,
fn new( constitutive_model_parameters: Parameters<'a>, connectivity: Vec<[usize; N]>, reference_nodal_coordinates: TensorRank1Vec<3, 0>, ) -> Self
Source§impl<'a, C, F, const G: usize, const N: usize> HyperelasticFiniteElementBlock<'a, C, F, G, N> for ElementBlock<F, N>where
C: Hyperelastic<'a>,
F: HyperelasticFiniteElement<'a, C, G, N>,
Self: ElasticFiniteElementBlock<'a, C, F, G, N>,
impl<'a, C, F, const G: usize, const N: usize> HyperelasticFiniteElementBlock<'a, C, F, G, N> for ElementBlock<F, N>where
C: Hyperelastic<'a>,
F: HyperelasticFiniteElement<'a, C, G, N>,
Self: ElasticFiniteElementBlock<'a, C, F, G, N>,
fn helmholtz_free_energy( &self, nodal_coordinates: &TensorRank1Vec<3, 1>, ) -> Result<Scalar, ConstitutiveError>
Source§impl<'a, C, F, const G: usize, const N: usize> HyperviscoelasticFiniteElementBlock<'a, C, F, G, N> for ElementBlock<F, N>where
C: Hyperviscoelastic<'a>,
F: HyperviscoelasticFiniteElement<'a, C, G, N>,
Self: ElasticHyperviscousFiniteElementBlock<'a, C, F, G, N>,
impl<'a, C, F, const G: usize, const N: usize> HyperviscoelasticFiniteElementBlock<'a, C, F, G, N> for ElementBlock<F, N>where
C: Hyperviscoelastic<'a>,
F: HyperviscoelasticFiniteElement<'a, C, G, N>,
Self: ElasticHyperviscousFiniteElementBlock<'a, C, F, G, N>,
fn helmholtz_free_energy( &self, nodal_coordinates: &TensorRank1Vec<3, 1>, ) -> Result<Scalar, ConstitutiveError>
Source§impl<'a, C, F, const G: usize, const N: usize, const P: usize> SurfaceFiniteElementBlock<'a, C, F, G, N, P> for ElementBlock<F, N>where
C: Constitutive<'a>,
F: SurfaceFiniteElement<'a, C, G, N, P>,
impl<'a, C, F, const G: usize, const N: usize, const P: usize> SurfaceFiniteElementBlock<'a, C, F, G, N, P> for ElementBlock<F, N>where
C: Constitutive<'a>,
F: SurfaceFiniteElement<'a, C, G, N, P>,
fn new( constitutive_model_parameters: Parameters<'a>, connectivity: Vec<[usize; N]>, reference_nodal_coordinates: TensorRank1Vec<3, 0>, thickness: Scalar, ) -> Self
Source§impl<'a, C, F, const G: usize, const N: usize> ViscoelasticFiniteElementBlock<'a, C, F, G, N> for ElementBlock<F, N>where
C: Viscoelastic<'a>,
F: ViscoelasticFiniteElement<'a, C, G, N>,
Self: FiniteElementBlockMethods<'a, C, F, G, N>,
impl<'a, C, F, const G: usize, const N: usize> ViscoelasticFiniteElementBlock<'a, C, F, G, N> for ElementBlock<F, N>where
C: Viscoelastic<'a>,
F: ViscoelasticFiniteElement<'a, C, G, N>,
Self: FiniteElementBlockMethods<'a, C, F, G, N>,
fn nodal_forces( &self, nodal_coordinates: &TensorRank1Vec<3, 1>, nodal_velocities: &TensorRank1Vec<3, 1>, ) -> Result<TensorRank1Vec<3, 1>, ConstitutiveError>
fn nodal_stiffnesses( &self, nodal_coordinates: &TensorRank1Vec<3, 1>, nodal_velocities: &TensorRank1Vec<3, 1>, ) -> Result<TensorRank2Vec2D<3, 1, 1>, ConstitutiveError>
fn nodal_velocities_element( &self, element_connectivity: &[usize; N], nodal_velocities: &TensorRank1Vec<3, 1>, ) -> CurrentCoordinates<D>
Auto Trait Implementations§
impl<F, const N: usize> Freeze for ElementBlock<F, N>
impl<F, const N: usize> RefUnwindSafe for ElementBlock<F, N>where
F: RefUnwindSafe,
impl<F, const N: usize> Send for ElementBlock<F, N>where
F: Send,
impl<F, const N: usize> Sync for ElementBlock<F, N>where
F: Sync,
impl<F, const N: usize> Unpin for ElementBlock<F, N>where
F: Unpin,
impl<F, const N: usize> UnwindSafe for ElementBlock<F, N>where
F: UnwindSafe,
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