pub struct Block<C, F> { /* private fields */ }Implementations§
Trait Implementations§
Source§impl<C, F> ElasticElements<3> for Block<C, F>where
C: Elastic,
F: ElasticVirtualElement<C>,
impl<C, F> ElasticElements<3> for Block<C, F>where
C: Elastic,
F: ElasticVirtualElement<C>,
fn nodal_forces_into( &self, nodal_coordinates: &NodalCoordinates, nodal_forces: &mut NodalForcesSolid, ) -> Result<(), ElementModelError>
fn nodal_stiffnesses_into( &self, nodal_coordinates: &NodalCoordinates, nodal_stiffnesses: &mut NodalStiffnessesSolid, ) -> 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> ElasticHyperviscousElements<3> for Block<C, F>where
C: ElasticHyperviscous,
F: ElasticHyperviscousVirtualElement<C>,
Self: ViscoelasticElements<3>,
impl<C, F> ElasticHyperviscousElements<3> for Block<C, F>where
C: ElasticHyperviscous,
F: ElasticHyperviscousVirtualElement<C>,
Self: ViscoelasticElements<3>,
fn viscous_dissipation( &self, nodal_coordinates: &NodalCoordinates, nodal_velocities: &NodalVelocities, ) -> Result<Quantity<Power>, ElementModelError>
fn dissipation_potential( &self, nodal_coordinates: &NodalCoordinates, nodal_velocities: &NodalVelocities, ) -> Result<Quantity<Power>, ElementModelError>
Source§impl<C, F, Y> ElasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, Intermediate, Reference>, Y>, 1>>, 3> for Block<C, F>where
C: ElasticViscoplastic<Y>,
F: ElasticViscoplasticVirtualElement<C, Y>,
Y: Differentiable + Tensor,
impl<C, F, Y> ElasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, Intermediate, Reference>, Y>, 1>>, 3> for Block<C, F>where
C: ElasticViscoplastic<Y>,
F: ElasticViscoplasticVirtualElement<C, Y>,
Y: Differentiable + Tensor,
fn initial_state(&self) -> ViscoplasticStateVariables<1, Y>
fn nodal_forces_into( &self, nodal_coordinates: &NodalCoordinates, state_variables: &ViscoplasticStateVariables<1, Y>, nodal_forces: &mut NodalForcesSolid, ) -> Result<(), ElementModelError>
fn nodal_stiffnesses_into( &self, nodal_coordinates: &NodalCoordinates, state_variables: &ViscoplasticStateVariables<1, Y>, nodal_stiffnesses: &mut NodalStiffnessesSolid, ) -> Result<(), ElementModelError>
fn state_variables_evolution( &self, nodal_coordinates: &NodalCoordinates, state_variables: &ViscoplasticStateVariables<1, Y>, ) -> Result<ViscoplasticEvolution<1, 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> Elements for Block<C, F>
impl<C, F> Elements for Block<C, F>
fn node_neighbors(&self, neighbors: &mut [Vec<usize>])
Source§impl<C, F> From<(C, PolytopalConnectivity<3>, &TensorVector<TensorRank1<3, Reference, Length>>)> for Block<C, F>where
F: VirtualElement,
impl<C, F> From<(C, PolytopalConnectivity<3>, &TensorVector<TensorRank1<3, Reference, Length>>)> for Block<C, F>where
F: VirtualElement,
Source§fn from(
(constitutive_model, connectivity, coordinates): (C, PolytopalConnectivity<3>, &NodalReferenceCoordinates),
) -> Self
fn from( (constitutive_model, connectivity, coordinates): (C, PolytopalConnectivity<3>, &NodalReferenceCoordinates), ) -> Self
Converts to this type from the input type.
Source§impl<C, F> From<(C, Vec<Vec<usize>>, Vec<Vec<usize>>, &TensorVector<TensorRank1<3, Reference, Length>>)> for Block<C, F>where
F: VirtualElement,
impl<C, F> From<(C, Vec<Vec<usize>>, Vec<Vec<usize>>, &TensorVector<TensorRank1<3, Reference, Length>>)> for Block<C, F>where
F: VirtualElement,
Source§impl<C, F> HyperelasticElements<3> for Block<C, F>where
C: Hyperelastic,
F: HyperelasticVirtualElement<C>,
impl<C, F> HyperelasticElements<3> for Block<C, F>where
C: Hyperelastic,
F: HyperelasticVirtualElement<C>,
fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinates, ) -> Result<Quantity<Energy>, ElementModelError>
fn nodal_stiffnesses_symmetric_into( &self, nodal_coordinates: &NodalCoordinates, nodal_stiffnesses: &mut NodalStiffnessesSolidSymmetric, ) -> Result<(), ElementModelError>
fn nodal_stiffnesses_symmetric( &self, nodal_coordinates: &NodalCoordinates<D>, ) -> Result<NodalStiffnessesSolidSymmetric<D>, ElementModelError>
Source§impl<C, F, Y> HyperelasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, Intermediate, Reference>, Y>, 1>>, 3> for Block<C, F>where
C: HyperelasticViscoplastic<Y>,
F: HyperelasticViscoplasticVirtualElement<C, Y>,
Self: ElasticViscoplasticElements<ViscoplasticStateVariables<1, Y>, 3>,
Y: Differentiable + Tensor,
impl<C, F, Y> HyperelasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, Intermediate, Reference>, Y>, 1>>, 3> for Block<C, F>where
C: HyperelasticViscoplastic<Y>,
F: HyperelasticViscoplasticVirtualElement<C, Y>,
Self: ElasticViscoplasticElements<ViscoplasticStateVariables<1, Y>, 3>,
Y: Differentiable + Tensor,
fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinates, state_variables: &ViscoplasticStateVariables<1, Y>, ) -> Result<Quantity<Energy>, ElementModelError>
Source§impl<C, F> HyperviscoelasticElements<3> for Block<C, F>where
C: Hyperviscoelastic,
F: HyperviscoelasticVirtualElement<C>,
Self: ElasticHyperviscousElements<3>,
impl<C, F> HyperviscoelasticElements<3> for Block<C, F>where
C: Hyperviscoelastic,
F: HyperviscoelasticVirtualElement<C>,
Self: ElasticHyperviscousElements<3>,
fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinates, ) -> Result<Quantity<Energy>, ElementModelError>
Source§impl<C, F> SolidElements for Block<C, F>where
C: Solid,
F: SolidVirtualElement,
impl<C, F> SolidElements for Block<C, F>where
C: Solid,
F: SolidVirtualElement,
type DeformationGradients = TensorVector<TensorRank2<3, Current, Reference>>
type DeformationGradientRates = TensorVector<TensorRank2<3, Current, Reference, Rate>>
fn deformation_gradients( &self, nodal_coordinates: &NodalCoordinates, ) -> Vec<Self::DeformationGradients>
fn deformation_gradient_rates( &self, nodal_coordinates: &NodalCoordinates, nodal_velocities: &NodalVelocities, ) -> Vec<Self::DeformationGradientRates>
Source§impl<C, F> ViscoelasticElements<3> for Block<C, F>where
C: Viscoelastic,
F: ViscoelasticVirtualElement<C>,
impl<C, F> ViscoelasticElements<3> for Block<C, F>where
C: Viscoelastic,
F: ViscoelasticVirtualElement<C>,
fn nodal_forces_into( &self, nodal_coordinates: &NodalCoordinates, nodal_velocities: &NodalVelocities, nodal_forces: &mut NodalForcesSolid, ) -> Result<(), ElementModelError>
fn nodal_stiffnesses_into( &self, nodal_coordinates: &NodalCoordinates, nodal_velocities: &NodalVelocities, nodal_stiffnesses: &mut NodalDampingsSolid, ) -> 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<NodalDampingsSolid<D>, ElementModelError>
Auto Trait Implementations§
impl<C, F> !Freeze for Block<C, F>
impl<C, F> !RefUnwindSafe for Block<C, F>
impl<C, F> !Sync for Block<C, F>
impl<C, F> Send for Block<C, F>
impl<C, F> Unpin for Block<C, F>
impl<C, F> UnsafeUnpin for Block<C, F>where
C: UnsafeUnpin,
impl<C, F> UnwindSafe for Block<C, F>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