pub struct Block<C, F, const G: usize, const M: usize, const N: usize, const P: usize> { /* private fields */ }Implementations§
Source§impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> Block<C, F, G, M, N, P>where
C: Viscoelastic,
F: ViscoelasticFiniteElement<C, G, M, N, P>,
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> Block<C, F, G, M, N, P>where
C: Viscoelastic,
F: ViscoelasticFiniteElement<C, G, M, N, P>,
pub fn deformation_gradient_rates( &self, nodal_coordinates: &NodalCoordinates<3>, nodal_velocities: &NodalVelocities<3>, ) -> Vec<DeformationGradientRateList<G>> ⓘ
Trait Implementations§
Source§impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> Debug for Block<C, F, G, M, N, P>where
F: FiniteElement<G, M, N, P>,
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> Debug for Block<C, F, G, M, N, P>where
F: FiniteElement<G, M, N, P>,
Source§impl<C, F, const G: usize, const N: usize, const P: usize> ElasticElements<2> for Block<C, F, G, 2, N, P>where
C: Elastic,
F: PlanarElasticFiniteElement<C, G, N, P>,
impl<C, F, const G: usize, const N: usize, const P: usize> ElasticElements<2> for Block<C, F, G, 2, N, P>where
C: Elastic,
F: PlanarElasticFiniteElement<C, G, N, P>,
fn nodal_forces_into( &self, nodal_coordinates: &NodalCoordinates<2>, nodal_forces: &mut NodalForcesSolid<2>, ) -> Result<(), ElementModelError>
fn nodal_stiffnesses_into( &self, nodal_coordinates: &NodalCoordinates<2>, nodal_stiffnesses: &mut NodalStiffnessesSolid<2>, ) -> Result<(), ElementModelError>
fn nodal_forces( &self, nodal_coordinates: &NodalCoordinates<D>, ) -> Result<NodalForcesSolid<D>, ElementModelError>
fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinates<D>, ) -> Result<NodalStiffnessesSolid<D>, ElementModelError>
Source§impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> ElasticElements<3> for Block<C, F, G, M, N, P>where
C: Elastic,
F: ElasticFiniteElement<C, G, M, N, P>,
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> ElasticElements<3> for Block<C, F, G, M, N, P>where
C: Elastic,
F: ElasticFiniteElement<C, G, M, N, P>,
fn nodal_forces_into( &self, nodal_coordinates: &NodalCoordinates<3>, nodal_forces: &mut NodalForcesSolid<3>, ) -> Result<(), ElementModelError>
fn nodal_stiffnesses_into( &self, nodal_coordinates: &NodalCoordinates<3>, nodal_stiffnesses: &mut NodalStiffnessesSolid<3>, ) -> Result<(), ElementModelError>
fn nodal_forces( &self, nodal_coordinates: &NodalCoordinates<D>, ) -> Result<NodalForcesSolid<D>, ElementModelError>
fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinates<D>, ) -> Result<NodalStiffnessesSolid<D>, ElementModelError>
Source§impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> ElasticHyperviscousElements<3> for Block<C, F, G, M, N, P>where
C: ElasticHyperviscous,
F: ElasticHyperviscousFiniteElement<C, G, M, N, P>,
Self: ViscoelasticElements<3>,
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> ElasticHyperviscousElements<3> for Block<C, F, G, M, N, P>where
C: ElasticHyperviscous,
F: ElasticHyperviscousFiniteElement<C, G, M, N, P>,
Self: ViscoelasticElements<3>,
fn viscous_dissipation( &self, nodal_coordinates: &NodalCoordinates<3>, nodal_velocities: &NodalVelocities<3>, ) -> Result<Scalar, ElementModelError>
fn dissipation_potential( &self, nodal_coordinates: &NodalCoordinates<3>, nodal_velocities: &NodalVelocities<3>, ) -> Result<Scalar, ElementModelError>
Source§impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize, Y> ElasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, 2, 0>, Y>, G>>, 3> for Block<C, F, G, M, N, P>
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize, Y> ElasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, 2, 0>, Y>, G>>, 3> for Block<C, F, G, M, N, P>
fn initial_state(&self) -> ViscoplasticStateVariables<G, Y>
fn nodal_forces_into( &self, nodal_coordinates: &NodalCoordinates<3>, state_variables: &ViscoplasticStateVariables<G, Y>, nodal_forces: &mut NodalForcesSolid<3>, ) -> Result<(), ElementModelError>
fn nodal_stiffnesses_into( &self, nodal_coordinates: &NodalCoordinates<3>, state_variables: &ViscoplasticStateVariables<G, Y>, nodal_stiffnesses: &mut NodalStiffnessesSolid<3>, ) -> Result<(), ElementModelError>
fn state_variables_evolution( &self, nodal_coordinates: &NodalCoordinates<3>, state_variables: &ViscoplasticStateVariables<G, Y>, ) -> Result<ViscoplasticStateVariables<G, Y>, ElementModelError>
fn nodal_forces( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &S, ) -> Result<NodalForcesSolid<D>, ElementModelError>
fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &S, ) -> Result<NodalStiffnessesSolid<D>, ElementModelError>
Source§impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> Elements for Block<C, F, G, M, N, P>where
F: FiniteElement<G, M, N, P>,
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> Elements for Block<C, F, G, M, N, P>where
F: FiniteElement<G, M, N, P>,
fn node_neighbors(&self, neighbors: &mut [Vec<usize>])
Source§impl<C, F, const G: usize, const N: usize, const P: usize> From<(C, PrimitiveConnectivity<2, N>, &TensorVector<TensorRank1<2, 0>>)> for Block<C, F, G, 2, N, P>
impl<C, F, const G: usize, const N: usize, const P: usize> From<(C, PrimitiveConnectivity<2, N>, &TensorVector<TensorRank1<2, 0>>)> for Block<C, F, G, 2, N, P>
Source§fn from(
(constitutive_model, connectivity, coordinates): (C, PrimitiveConnectivity<2, N>, &NodalReferenceCoordinates<2>),
) -> Self
fn from( (constitutive_model, connectivity, coordinates): (C, PrimitiveConnectivity<2, N>, &NodalReferenceCoordinates<2>), ) -> Self
Converts to this type from the input type.
Source§impl<C, F, const G: usize, const N: usize, const P: usize> From<(C, PrimitiveConnectivity<3, N>, &TensorVector<TensorRank1<3, 0>>)> for Block<C, F, G, 3, N, P>
impl<C, F, const G: usize, const N: usize, const P: usize> From<(C, PrimitiveConnectivity<3, N>, &TensorVector<TensorRank1<3, 0>>)> for Block<C, F, G, 3, N, P>
Source§fn from(
(constitutive_model, connectivity, coordinates): (C, PrimitiveConnectivity<3, N>, &NodalReferenceCoordinates<3>),
) -> Self
fn from( (constitutive_model, connectivity, coordinates): (C, PrimitiveConnectivity<3, N>, &NodalReferenceCoordinates<3>), ) -> Self
Converts to this type from the input type.
Source§impl<C, F, const G: usize, const N: usize, const P: usize> From<(C, Vec<[usize; N]>, &TensorVector<TensorRank1<2, 0>>)> for Block<C, F, G, 2, N, P>
impl<C, F, const G: usize, const N: usize, const P: usize> From<(C, Vec<[usize; N]>, &TensorVector<TensorRank1<2, 0>>)> for Block<C, F, G, 2, N, P>
Source§impl<C, F, const G: usize, const N: usize, const P: usize> From<(C, Vec<[usize; N]>, &TensorVector<TensorRank1<3, 0>>)> for Block<C, F, G, 3, N, P>
impl<C, F, const G: usize, const N: usize, const P: usize> From<(C, Vec<[usize; N]>, &TensorVector<TensorRank1<3, 0>>)> for Block<C, F, G, 3, N, P>
Source§impl<C, F, const G: usize, const N: usize, const P: usize> From<(C, Vec<[usize; N]>, &TensorVector<TensorRank1<3, 0>>, f64)> for Block<C, F, G, M, N, P>
impl<C, F, const G: usize, const N: usize, const P: usize> From<(C, Vec<[usize; N]>, &TensorVector<TensorRank1<3, 0>>, f64)> for Block<C, F, G, M, N, P>
Source§impl<C, F, const G: usize, const N: usize, const P: usize> HyperelasticElements<2> for Block<C, F, G, 2, N, P>
impl<C, F, const G: usize, const N: usize, const P: usize> HyperelasticElements<2> for Block<C, F, G, 2, N, P>
fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinates<2>, ) -> Result<Scalar, ElementModelError>
fn nodal_stiffnesses_symmetric_into( &self, nodal_coordinates: &NodalCoordinates<2>, nodal_stiffnesses: &mut NodalStiffnessesSolidSymmetric<2>, ) -> Result<(), ElementModelError>
fn nodal_stiffnesses_symmetric( &self, nodal_coordinates: &NodalCoordinates<D>, ) -> Result<NodalStiffnessesSolidSymmetric<D>, ElementModelError>
Source§impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> HyperelasticElements<3> for Block<C, F, G, M, N, P>
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> HyperelasticElements<3> for Block<C, F, G, M, N, P>
fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinates<3>, ) -> Result<Scalar, ElementModelError>
fn nodal_stiffnesses_symmetric_into( &self, nodal_coordinates: &NodalCoordinates<3>, nodal_stiffnesses: &mut NodalStiffnessesSolidSymmetric<3>, ) -> Result<(), ElementModelError>
fn nodal_stiffnesses_symmetric( &self, nodal_coordinates: &NodalCoordinates<D>, ) -> Result<NodalStiffnessesSolidSymmetric<D>, ElementModelError>
Source§impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize, Y> HyperelasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, 2, 0>, Y>, G>>, 3> for Block<C, F, G, M, N, P>where
C: HyperelasticViscoplastic<Y>,
F: HyperelasticViscoplasticFiniteElement<C, G, M, N, P, Y>,
Self: ElasticViscoplasticElements<ViscoplasticStateVariables<G, Y>, 3>,
Y: Tensor,
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize, Y> HyperelasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, 2, 0>, Y>, G>>, 3> for Block<C, F, G, M, N, P>where
C: HyperelasticViscoplastic<Y>,
F: HyperelasticViscoplasticFiniteElement<C, G, M, N, P, Y>,
Self: ElasticViscoplasticElements<ViscoplasticStateVariables<G, Y>, 3>,
Y: Tensor,
fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinates<3>, state_variables: &ViscoplasticStateVariables<G, Y>, ) -> Result<Scalar, ElementModelError>
Source§impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> HyperviscoelasticElements<3> for Block<C, F, G, M, N, P>where
C: Hyperviscoelastic,
F: HyperviscoelasticFiniteElement<C, G, M, N, P>,
Self: ElasticHyperviscousElements<3>,
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> HyperviscoelasticElements<3> for Block<C, F, G, M, N, P>where
C: Hyperviscoelastic,
F: HyperviscoelasticFiniteElement<C, G, M, N, P>,
Self: ElasticHyperviscousElements<3>,
fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinates<3>, ) -> Result<Scalar, ElementModelError>
Source§impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> SolidElements<C, F, G, M, N, P> for Block<C, F, G, M, N, P>where
F: SolidFiniteElement<G, M, N, P>,
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> SolidElements<C, F, G, M, N, P> for Block<C, F, G, M, N, P>where
F: SolidFiniteElement<G, M, N, P>,
fn deformation_gradients( &self, nodal_coordinates: &NodalCoordinates<3>, ) -> Vec<DeformationGradientList<G>> ⓘ
Source§impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> ThermalConductionElements for Block<C, F, G, M, N, P>where
C: ThermalConduction,
F: ThermalConductionFiniteElement<C, G, M, N, P>,
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> ThermalConductionElements for Block<C, F, G, M, N, P>where
C: ThermalConduction,
F: ThermalConductionFiniteElement<C, G, M, N, P>,
fn potential( &self, nodal_temperatures: &NodalTemperatures, ) -> Result<Scalar, ElementModelError>
fn nodal_forces_into( &self, nodal_temperatures: &NodalTemperatures, nodal_forces: &mut NodalForcesThermal, ) -> Result<(), ElementModelError>
fn nodal_stiffnesses_into( &self, nodal_temperatures: &NodalTemperatures, nodal_stiffnesses: &mut NodalStiffnessesThermal, ) -> Result<(), ElementModelError>
fn nodal_forces( &self, nodal_temperatures: &NodalTemperatures, ) -> Result<NodalForcesThermal, ElementModelError>
fn nodal_stiffnesses( &self, nodal_temperatures: &NodalTemperatures, ) -> Result<NodalStiffnessesThermal, ElementModelError>
Source§impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> ThermalElements<C, F, G, M, N, P> for Block<C, F, G, M, N, P>where
F: ThermalFiniteElement<G, M, N, P>,
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> ThermalElements<C, F, G, M, N, P> for Block<C, F, G, M, N, P>where
F: ThermalFiniteElement<G, M, N, P>,
fn nodal_temperatures_element( &self, element_connectivity: &[usize; N], nodal_temperatures: &NodalTemperatures, ) -> ElementNodalTemperatures<N>
fn temperature_gradients( &self, nodal_temperatures: &NodalTemperatures, ) -> Vec<TemperatureGradients<G>> ⓘ
Source§impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> ViscoelasticElements<3> for Block<C, F, G, M, N, P>where
C: Viscoelastic,
F: ViscoelasticFiniteElement<C, G, M, N, P>,
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> ViscoelasticElements<3> for Block<C, F, G, M, N, P>where
C: Viscoelastic,
F: ViscoelasticFiniteElement<C, G, M, N, P>,
fn nodal_forces_into( &self, nodal_coordinates: &NodalCoordinates<3>, nodal_velocities: &NodalVelocities<3>, nodal_forces: &mut NodalForcesSolid<3>, ) -> Result<(), ElementModelError>
fn nodal_stiffnesses_into( &self, nodal_coordinates: &NodalCoordinates<3>, nodal_velocities: &NodalVelocities<3>, nodal_stiffnesses: &mut NodalStiffnessesSolid<3>, ) -> Result<(), ElementModelError>
fn nodal_forces( &self, nodal_coordinates: &NodalCoordinates<D>, nodal_velocities: &NodalVelocities<D>, ) -> Result<NodalForcesSolid<D>, ElementModelError>
fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinates<D>, nodal_velocities: &NodalVelocities<D>, ) -> Result<NodalStiffnessesSolid<D>, ElementModelError>
impl<C, F, const G: usize, const N: usize, const P: usize> SurfaceElements<C, F, G, N> for Block<C, F, G, M, N, P>
Auto Trait Implementations§
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> !Freeze for Block<C, F, G, M, N, P>
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> !RefUnwindSafe for Block<C, F, G, M, N, P>
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> Send for Block<C, F, G, M, N, P>
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> !Sync for Block<C, F, G, M, N, P>
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> Unpin for Block<C, F, G, M, N, P>
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> UnsafeUnpin for Block<C, F, G, M, N, P>where
C: UnsafeUnpin,
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> UnwindSafe for Block<C, F, G, M, N, P>where
C: UnwindSafe,
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