pub struct TensorVector<T>(/* private fields */);Expand description
A resizable collection of tensors.
Implementations§
Source§impl<U> TensorVector<QuantitySparseVec<U>>
impl<U> TensorVector<QuantitySparseVec<U>>
Source§impl<const D: usize, I, U> TensorVector<TensorRank1<D, I, U>>
impl<const D: usize, I, U> TensorVector<TensorRank1<D, I, U>>
pub fn bounding_box(&self) -> TensorRank1List<D, I, 2, U>
pub fn zero(len: usize) -> Self
Source§impl<const D: usize, I, J, U> TensorVector<TensorRank2SparseVec<D, I, J, U>>
impl<const D: usize, I, J, U> TensorVector<TensorRank2SparseVec<D, I, J, U>>
Source§impl<const D: usize, I, J, U> TensorVector<TensorRank2<D, I, J, U>>
impl<const D: usize, I, J, U> TensorVector<TensorRank2<D, I, J, U>>
Source§impl<const D: usize, I, J, U> TensorVector<TensorVector<TensorRank2<D, I, J, U>>>
impl<const D: usize, I, J, U> TensorVector<TensorVector<TensorRank2<D, I, J, U>>>
Source§impl<'a, const D: usize, I, U> TensorVector<&'a TensorRank1<D, I, U>>
impl<'a, const D: usize, I, U> TensorVector<&'a TensorRank1<D, I, U>>
pub fn bounding_box(&self) -> TensorRank1List<D, I, 2, U>
pub fn iter(&self) -> impl Iterator<Item = &&TensorRank1<D, I, U>>
pub fn is_empty(&self) -> bool
pub fn len(&self) -> usize
Source§impl<T> TensorVector<T>where
T: Tensor,
impl<T> TensorVector<T>where
T: Tensor,
Trait Implementations§
Source§impl<T> Add for TensorVector<T>where
T: Tensor,
impl<T> Add for TensorVector<T>where
T: Tensor,
Source§impl<T> Add<&TensorVector<T>> for TensorVector<T>where
T: Tensor,
impl<T> Add<&TensorVector<T>> for TensorVector<T>where
T: Tensor,
Source§impl<T> AddAssign for TensorVector<T>where
T: Tensor,
impl<T> AddAssign for TensorVector<T>where
T: Tensor,
Source§fn add_assign(&mut self, tensor_vec: Self)
fn add_assign(&mut self, tensor_vec: Self)
Performs the
+= operation. Read moreSource§impl<T> AddAssign<&TensorVector<T>> for TensorVector<T>where
T: Tensor,
impl<T> AddAssign<&TensorVector<T>> for TensorVector<T>where
T: Tensor,
Source§fn add_assign(&mut self, tensor_vec: &Self)
fn add_assign(&mut self, tensor_vec: &Self)
Performs the
+= operation. Read moreSource§impl<T> AssertEq for TensorVector<T>
impl<T> AssertEq for TensorVector<T>
fn eq(a: Self, b: TensorVector<T>) -> Result<(), AssertionError>
fn eq_within_tols( tols: &Assert, a: Self, b: TensorVector<T>, ) -> Result<(), AssertionError>
Source§impl<T: Clone> Clone for TensorVector<T>
impl<T: Clone> Clone for TensorVector<T>
Source§fn clone(&self) -> TensorVector<T>
fn clone(&self) -> TensorVector<T>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<T, V> ContractWith<TensorVector<V>> for TensorVector<T>
impl<T, V> ContractWith<TensorVector<V>> for TensorVector<T>
Source§type Output = <T as ContractWith<V>>::Output
type Output = <T as ContractWith<V>>::Output
The quantity the contraction gives.
Source§fn contract_with(&self, tensor_vector: &TensorVector<V>) -> Self::Output
fn contract_with(&self, tensor_vector: &TensorVector<V>) -> Self::Output
Returns the full contraction with the other tensor.
Source§impl<T: Debug> Debug for TensorVector<T>
impl<T: Debug> Debug for TensorVector<T>
Source§impl<T> Default for TensorVector<T>where
T: Tensor,
impl<T> Default for TensorVector<T>where
T: Tensor,
Source§impl<E, T> Differentiable<T> for TensorVector<E>
impl<E, T> Differentiable<T> for TensorVector<E>
Source§type Derivative = TensorVector<<E as Differentiable<T>>::Derivative>
type Derivative = TensorVector<<E as Differentiable<T>>::Derivative>
The derivative with respect to the variable of integration.
Source§impl<T> Display for TensorVector<T>where
T: Tensor,
impl<T> Display for TensorVector<T>where
T: Tensor,
Source§impl<T> Div<&f64> for TensorVector<T>where
T: Tensor,
impl<T> Div<&f64> for TensorVector<T>where
T: Tensor,
Source§type Output = TensorVector<T>
type Output = TensorVector<T>
The resulting type after applying the
/ operator.Source§impl<T, V> Div<Quantity<V>> for TensorVector<T>
impl<T, V> Div<Quantity<V>> for TensorVector<T>
Source§impl<T, V> Div<Quantity<V>> for &TensorVector<T>
impl<T, V> Div<Quantity<V>> for &TensorVector<T>
Source§impl<U, V> Div<TensorVector<QuantitySparseVec<V>>> for &QuantityVector<U>where
U: UnitDiv<V>,
impl<U, V> Div<TensorVector<QuantitySparseVec<V>>> for &QuantityVector<U>where
U: UnitDiv<V>,
Source§impl<const D: usize, I, J, U, V> Div<TensorVector<TensorRank2SparseVec<D, I, J, V>>> for &TensorRank1Vec<D, I, U>where
U: UnitDiv<V>,
impl<const D: usize, I, J, U, V> Div<TensorVector<TensorRank2SparseVec<D, I, J, V>>> for &TensorRank1Vec<D, I, U>where
U: UnitDiv<V>,
Source§type Output = TensorVector<TensorRank1<D, J, <U as UnitDiv<V>>::Output>>
type Output = TensorVector<TensorRank1<D, J, <U as UnitDiv<V>>::Output>>
The resulting type after applying the
/ operator.Source§impl<const D: usize, I, J, U> Div<TensorVector<TensorVector<TensorRank2<D, I, J, U>>>> for &TensorRank1Vec<D, I, U>
impl<const D: usize, I, J, U> Div<TensorVector<TensorVector<TensorRank2<D, I, J, U>>>> for &TensorRank1Vec<D, I, U>
Source§type Output = TensorVector<TensorRank1<D, J, U>>
type Output = TensorVector<TensorRank1<D, J, U>>
The resulting type after applying the
/ operator.Source§impl<T> Div<f64> for TensorVector<T>where
T: Tensor,
impl<T> Div<f64> for TensorVector<T>where
T: Tensor,
Source§type Output = TensorVector<T>
type Output = TensorVector<T>
The resulting type after applying the
/ operator.Source§impl<T> DivAssign<&f64> for TensorVector<T>where
T: Tensor,
impl<T> DivAssign<&f64> for TensorVector<T>where
T: Tensor,
Source§fn div_assign(&mut self, tensor_rank_0: &TensorRank0)
fn div_assign(&mut self, tensor_rank_0: &TensorRank0)
Performs the
/= operation. Read moreSource§impl<T> DivAssign<f64> for TensorVector<T>where
T: Tensor,
impl<T> DivAssign<f64> for TensorVector<T>where
T: Tensor,
Source§fn div_assign(&mut self, tensor_rank_0: TensorRank0)
fn div_assign(&mut self, tensor_rank_0: TensorRank0)
Performs the
/= operation. Read moreSource§impl<C, Y> ElasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, Intermediate, Reference>, Y>, 1>>, 3> for Block<C>
impl<C, Y> ElasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, Intermediate, Reference>, Y>, 1>>, 3> for Block<C>
fn initial_state(&self) -> ViscoplasticStateVariables<1, Y>
fn nodal_forces_into( &self, nodal_coordinates: &NodalCoordinates<3>, state_variables: &ViscoplasticStateVariables<1, Y>, nodal_forces: &mut NodalForcesSolid<3>, ) -> Result<(), ElementModelError>
fn nodal_stiffnesses_into( &self, nodal_coordinates: &NodalCoordinates<3>, state_variables: &ViscoplasticStateVariables<1, Y>, nodal_stiffnesses: &mut NodalStiffnessesSolid<3>, ) -> Result<(), ElementModelError>
fn state_variables_evolution( &self, nodal_coordinates: &NodalCoordinates<3>, 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, 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, const G: usize, const M: usize, const N: usize, const P: usize, Y> ElasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, Intermediate, Reference>, Y>, G>>, 3> for Block<C, F, G, M, N, P>where
C: ElasticViscoplastic<Y>,
F: ElasticViscoplasticFiniteElement<C, G, M, N, P, Y>,
Y: Differentiable + Tensor,
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize, Y> ElasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, Intermediate, Reference>, Y>, G>>, 3> for Block<C, F, G, M, N, P>where
C: ElasticViscoplastic<Y>,
F: ElasticViscoplasticFiniteElement<C, G, M, N, P, Y>,
Y: Differentiable + Tensor,
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<ViscoplasticEvolution<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<T> Erase for TensorVector<T>
impl<T> Erase for TensorVector<T>
Source§impl<T> Extend<T> for TensorVector<T>where
T: Tensor,
impl<T> Extend<T> for TensorVector<T>where
T: Tensor,
Source§fn extend<I>(&mut self, iter: I)where
I: IntoIterator<Item = T>,
fn extend<I>(&mut self, iter: I)where
I: IntoIterator<Item = T>,
Extends a collection with the contents of an iterator. Read more
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
🔬This is a nightly-only experimental API. (
extend_one)Extends a collection with exactly one element.
Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
🔬This is a nightly-only experimental API. (
extend_one)Reserves capacity in a collection for the given number of additional elements. Read more
Source§impl<B, const D: usize> FirstOrderMinimize<Quantity<Energy>, TensorVector<TensorRank1<D, Current, Force>>, TensorVector<TensorRank1<D, Current, Length>>> for Model<B, D>where
B: HyperelasticElements<D>,
impl<B, const D: usize> FirstOrderMinimize<Quantity<Energy>, TensorVector<TensorRank1<D, Current, Force>>, TensorVector<TensorRank1<D, Current, Length>>> for Model<B, D>where
B: HyperelasticElements<D>,
fn minimize( &self, equality_constraint: EqualityConstraint, solver: impl FirstOrderOptimization<Quantity<Energy>, NodalForcesSolid<D>, NodalCoordinates<D>>, ) -> Result<NodalCoordinates<D>, OptimizationError>
Source§impl<B, const D: usize> FirstOrderMinimize<Quantity<PowerTemperature>, TensorVector<Quantity<Power>>, TensorVector<Quantity<Temperature>>> for Model<B, D>where
B: ThermalConductionElements,
impl<B, const D: usize> FirstOrderMinimize<Quantity<PowerTemperature>, TensorVector<Quantity<Power>>, TensorVector<Quantity<Temperature>>> for Model<B, D>where
B: ThermalConductionElements,
fn minimize( &self, equality_constraint: EqualityConstraint, solver: impl FirstOrderOptimization<Quantity<PowerTemperature>, NodalForcesThermal, NodalTemperatures>, ) -> Result<NodalTemperatures, OptimizationError>
Source§impl<B, const D: usize> FirstOrderRoot<TensorVector<Quantity<Power>>, TensorVector<QuantitySparseVec<PowerPerTemperature>>, TensorVector<Quantity<Temperature>>> for Model<B, D>where
B: ThermalConductionElements,
impl<B, const D: usize> FirstOrderRoot<TensorVector<Quantity<Power>>, TensorVector<QuantitySparseVec<PowerPerTemperature>>, TensorVector<Quantity<Temperature>>> for Model<B, D>where
B: ThermalConductionElements,
fn root( &self, equality_constraint: EqualityConstraint, solver: impl FirstOrderRootFinding<NodalForcesThermal, NodalStiffnessesThermal, NodalTemperatures>, ) -> Result<NodalTemperatures, OptimizationError>
Source§impl<B, const D: usize> FirstOrderRoot<TensorVector<TensorRank1<D, Current, Force>>, TensorVector<TensorRank2SparseVec<D, Current, Current, ForcePerLength>>, TensorVector<TensorRank1<D, Current, Length>>> for Model<B, D>where
B: ElasticElements<D>,
impl<B, const D: usize> FirstOrderRoot<TensorVector<TensorRank1<D, Current, Force>>, TensorVector<TensorRank2SparseVec<D, Current, Current, ForcePerLength>>, TensorVector<TensorRank1<D, Current, Length>>> for Model<B, D>where
B: ElasticElements<D>,
fn root( &self, equality_constraint: EqualityConstraint, solver: impl FirstOrderRootFinding<NodalForcesSolid<D>, NodalStiffnessesSolid<D>, NodalCoordinates<D>>, ) -> Result<NodalCoordinates<D>, OptimizationError>
Source§impl<const D: usize, U> From<&TensorVector<TensorRank1<D, Current, U>>> for TensorRank1Vec<D, Reference, U>
impl<const D: usize, U> From<&TensorVector<TensorRank1<D, Current, U>>> for TensorRank1Vec<D, Reference, U>
Source§fn from(tensor_rank_1_vec: &TensorRank1Vec<D, Current, U>) -> Self
fn from(tensor_rank_1_vec: &TensorRank1Vec<D, Current, U>) -> Self
Converts to this type from the input type.
Source§impl<const D: usize, I, U> From<&TensorVector<TensorRank1<D, I, U>>> for [Vec<TensorRank0>; D]
impl<const D: usize, I, U> From<&TensorVector<TensorRank1<D, I, U>>> for [Vec<TensorRank0>; D]
Source§fn from(tensor_rank_1_vec: &TensorRank1Vec<D, I, U>) -> Self
fn from(tensor_rank_1_vec: &TensorRank1Vec<D, I, U>) -> Self
Converts to this type from the input type.
Source§impl<const D: usize, U> From<&TensorVector<TensorRank1<D, Reference, U>>> for TensorRank1Vec<D, Current, U>
impl<const D: usize, U> From<&TensorVector<TensorRank1<D, Reference, U>>> for TensorRank1Vec<D, Current, U>
Source§fn from(tensor_rank_1_vec: &TensorRank1Vec<D, Reference, U>) -> Self
fn from(tensor_rank_1_vec: &TensorRank1Vec<D, Reference, U>) -> Self
Converts to this type from the input type.
Source§impl<'a, const D: usize> From<TensorVector<&'a TensorRank1<D, Reference, Length>>> for BoundingBox<D>
impl<'a, const D: usize> From<TensorVector<&'a TensorRank1<D, Reference, Length>>> for BoundingBox<D>
Source§fn from(coordinates: CoordinatesRef<'a, D>) -> Self
fn from(coordinates: CoordinatesRef<'a, D>) -> Self
Converts to this type from the input type.
Source§impl<T> From<TensorVector<T>> for Vec<T>where
T: Tensor,
impl<T> From<TensorVector<T>> for Vec<T>where
T: Tensor,
Source§fn from(tensor_vector: TensorVector<T>) -> Self
fn from(tensor_vector: TensorVector<T>) -> Self
Converts to this type from the input type.
Source§impl<T> From<TensorVector<T>> for VecDeque<T>where
T: Tensor,
impl<T> From<TensorVector<T>> for VecDeque<T>where
T: Tensor,
Source§fn from(tensor_vector: TensorVector<T>) -> Self
fn from(tensor_vector: TensorVector<T>) -> Self
Converts to this type from the input type.
Source§impl<const D: usize, U> From<TensorVector<TensorRank1<D, Current, U>>> for TensorRank1Vec<D, Reference, U>
impl<const D: usize, U> From<TensorVector<TensorRank1<D, Current, U>>> for TensorRank1Vec<D, Reference, U>
Source§fn from(tensor_rank_1_vec: TensorRank1Vec<D, Current, U>) -> Self
fn from(tensor_rank_1_vec: TensorRank1Vec<D, Current, U>) -> Self
Converts to this type from the input type.
Source§impl<const D: usize, I, U> From<TensorVector<TensorRank1<D, I, U>>> for Vec<[TensorRank0; D]>
impl<const D: usize, I, U> From<TensorVector<TensorRank1<D, I, U>>> for Vec<[TensorRank0; D]>
Source§fn from(tensor_rank_1_vec: TensorRank1Vec<D, I, U>) -> Self
fn from(tensor_rank_1_vec: TensorRank1Vec<D, I, U>) -> Self
Converts to this type from the input type.
Source§impl<const D: usize, I, U> From<TensorVector<TensorRank1<D, I, U>>> for Vec<Vec<TensorRank0>>
impl<const D: usize, I, U> From<TensorVector<TensorRank1<D, I, U>>> for Vec<Vec<TensorRank0>>
Source§fn from(tensor_rank_1_vec: TensorRank1Vec<D, I, U>) -> Self
fn from(tensor_rank_1_vec: TensorRank1Vec<D, I, U>) -> Self
Converts to this type from the input type.
Source§impl<const D: usize, I, U> From<TensorVector<TensorRank1<D, I, U>>> for [Vec<TensorRank0>; D]
impl<const D: usize, I, U> From<TensorVector<TensorRank1<D, I, U>>> for [Vec<TensorRank0>; D]
Source§fn from(tensor_rank_1_vec: TensorRank1Vec<D, I, U>) -> Self
fn from(tensor_rank_1_vec: TensorRank1Vec<D, I, U>) -> Self
Converts to this type from the input type.
Source§impl<const D: usize, I> From<TensorVector<TensorRank1<D, I>>> for Vector
impl<const D: usize, I> From<TensorVector<TensorRank1<D, I>>> for Vector
Source§fn from(tensor_rank_1_vec: TensorRank1Vec<D, I>) -> Self
fn from(tensor_rank_1_vec: TensorRank1Vec<D, I>) -> Self
Converts to this type from the input type.
Source§impl<const D: usize> From<TensorVector<TensorRank1<D, Reference, Length>>> for BoundingBox<D>
impl<const D: usize> From<TensorVector<TensorRank1<D, Reference, Length>>> for BoundingBox<D>
Source§fn from(coordinates: Coordinates<D>) -> Self
fn from(coordinates: Coordinates<D>) -> Self
Converts to this type from the input type.
Source§impl<const D: usize, U> From<TensorVector<TensorRank1<D, Reference, U>>> for TensorRank1Vec<D, Current, U>
impl<const D: usize, U> From<TensorVector<TensorRank1<D, Reference, U>>> for TensorRank1Vec<D, Current, U>
Source§fn from(tensor_rank_1_vec: TensorRank1Vec<D, Reference, U>) -> Self
fn from(tensor_rank_1_vec: TensorRank1Vec<D, Reference, U>) -> Self
Converts to this type from the input type.
Source§impl<const D: usize, I, J, U> From<TensorVector<TensorVector<TensorRank2<D, I, J, U>>>> for Vec<TensorRank0>
impl<const D: usize, I, J, U> From<TensorVector<TensorVector<TensorRank2<D, I, J, U>>>> for Vec<TensorRank0>
Source§fn from(tensor_rank_2_vec_2d: TensorRank2Vec2D<D, I, J, U>) -> Self
fn from(tensor_rank_2_vec_2d: TensorRank2Vec2D<D, I, J, U>) -> Self
Converts to this type from the input type.
Source§impl<const D: usize, I, J> From<TensorVector<TensorVector<TensorRank2<D, I, J>>>> for SquareMatrix
impl<const D: usize, I, J> From<TensorVector<TensorVector<TensorRank2<D, I, J>>>> for SquareMatrix
Source§fn from(tensor_rank_2_vec_2d: TensorRank2Vec2D<D, I, J>) -> Self
fn from(tensor_rank_2_vec_2d: TensorRank2Vec2D<D, I, J>) -> Self
Converts to this type from the input type.
Source§impl<T> FromIterator<T> for TensorVector<T>
impl<T> FromIterator<T> for TensorVector<T>
Source§fn from_iter<Ii: IntoIterator<Item = T>>(into_iterator: Ii) -> Self
fn from_iter<Ii: IntoIterator<Item = T>>(into_iterator: Ii) -> Self
Creates a value from an iterator. Read more
Source§impl<C, Y> HyperelasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, Intermediate, Reference>, Y>, 1>>, 3> for Block<C>
impl<C, Y> HyperelasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, Intermediate, Reference>, Y>, 1>>, 3> for Block<C>
fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinates<3>, state_variables: &ViscoplasticStateVariables<1, Y>, ) -> Result<Quantity<Energy>, 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, const G: usize, const M: usize, const N: usize, const P: usize, Y> HyperelasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, Intermediate, Reference>, 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: Differentiable + Tensor,
impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize, Y> HyperelasticViscoplasticElements<TensorVector<TensorList<TensorTuple<TensorRank2<3, Intermediate, Reference>, 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: Differentiable + Tensor,
fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinates<3>, state_variables: &ViscoplasticStateVariables<G, Y>, ) -> Result<Quantity<Energy>, ElementModelError>
Source§impl<T> IntoIterator for TensorVector<T>where
T: Tensor,
impl<T> IntoIterator for TensorVector<T>where
T: Tensor,
Source§impl<'a, T> IntoIterator for &'a TensorVector<T>where
T: Tensor,
impl<'a, T> IntoIterator for &'a TensorVector<T>where
T: Tensor,
Source§impl<const D: usize, I, U> Mul<&TensorVector<TensorRank1<D, I, U>>> for &Vector
impl<const D: usize, I, U> Mul<&TensorVector<TensorRank1<D, I, U>>> for &Vector
Source§impl<const D: usize, I, U> Mul<&TensorVector<TensorRank1<D, I, U>>> for &Matrix
impl<const D: usize, I, U> Mul<&TensorVector<TensorRank1<D, I, U>>> for &Matrix
Source§impl<const D: usize, I> Mul<&TensorVector<TensorRank1<D, I>>> for &CscMatrix
impl<const D: usize, I> Mul<&TensorVector<TensorRank1<D, I>>> for &CscMatrix
Source§impl<const D: usize, I, J, U, V> Mul<&TensorVector<TensorRank1<D, J, V>>> for TensorRank2<D, I, J, U>where
U: UnitMul<V>,
impl<const D: usize, I, J, U, V> Mul<&TensorVector<TensorRank1<D, J, V>>> for TensorRank2<D, I, J, U>where
U: UnitMul<V>,
Source§type Output = TensorVector<TensorRank1<D, I, <U as UnitMul<V>>::Output>>
type Output = TensorVector<TensorRank1<D, I, <U as UnitMul<V>>::Output>>
The resulting type after applying the
* operator.Source§impl<const D: usize, I, J, U, V> Mul<&TensorVector<TensorRank1<D, J, V>>> for &TensorRank2<D, I, J, U>where
U: UnitMul<V>,
impl<const D: usize, I, J, U, V> Mul<&TensorVector<TensorRank1<D, J, V>>> for &TensorRank2<D, I, J, U>where
U: UnitMul<V>,
Source§type Output = TensorVector<TensorRank1<D, I, <U as UnitMul<V>>::Output>>
type Output = TensorVector<TensorRank1<D, I, <U as UnitMul<V>>::Output>>
The resulting type after applying the
* operator.Source§impl<T> Mul<&f64> for TensorVector<T>where
T: Tensor,
impl<T> Mul<&f64> for TensorVector<T>where
T: Tensor,
Source§type Output = TensorVector<T>
type Output = TensorVector<T>
The resulting type after applying the
* operator.Source§impl<T, V> Mul<Quantity<V>> for TensorVector<T>
impl<T, V> Mul<Quantity<V>> for TensorVector<T>
Source§impl<T, V> Mul<Quantity<V>> for &TensorVector<T>
impl<T, V> Mul<Quantity<V>> for &TensorVector<T>
Source§impl<const D: usize, I, J, U, V> Mul<TensorVector<TensorRank1<D, J, V>>> for TensorRank2<D, I, J, U>where
U: UnitMul<V>,
impl<const D: usize, I, J, U, V> Mul<TensorVector<TensorRank1<D, J, V>>> for TensorRank2<D, I, J, U>where
U: UnitMul<V>,
Source§type Output = TensorVector<TensorRank1<D, I, <U as UnitMul<V>>::Output>>
type Output = TensorVector<TensorRank1<D, I, <U as UnitMul<V>>::Output>>
The resulting type after applying the
* operator.Source§impl<const D: usize, I, J, U, V> Mul<TensorVector<TensorRank1<D, J, V>>> for &TensorRank2<D, I, J, U>where
U: UnitMul<V>,
impl<const D: usize, I, J, U, V> Mul<TensorVector<TensorRank1<D, J, V>>> for &TensorRank2<D, I, J, U>where
U: UnitMul<V>,
Source§type Output = TensorVector<TensorRank1<D, I, <U as UnitMul<V>>::Output>>
type Output = TensorVector<TensorRank1<D, I, <U as UnitMul<V>>::Output>>
The resulting type after applying the
* operator.Source§impl<const D: usize, I, J, K, U, V> Mul<TensorVector<TensorRank2SparseVec<D, J, K, V>>> for TensorRank2<D, I, J, U>where
U: UnitMul<V>,
impl<const D: usize, I, J, K, U, V> Mul<TensorVector<TensorRank2SparseVec<D, J, K, V>>> for TensorRank2<D, I, J, U>where
U: UnitMul<V>,
Source§type Output = TensorVector<TensorRank2SparseVec<D, I, K, <U as UnitMul<V>>::Output>>
type Output = TensorVector<TensorRank2SparseVec<D, I, K, <U as UnitMul<V>>::Output>>
The resulting type after applying the
* operator.Source§impl<const D: usize, I, J, K, U, V> Mul<TensorVector<TensorVector<TensorRank2<D, J, K, V>>>> for TensorRank2<D, I, J, U>where
U: UnitMul<V>,
impl<const D: usize, I, J, K, U, V> Mul<TensorVector<TensorVector<TensorRank2<D, J, K, V>>>> for TensorRank2<D, I, J, U>where
U: UnitMul<V>,
Source§type Output = TensorVector<TensorVector<TensorRank2<D, I, K, <U as UnitMul<V>>::Output>>>
type Output = TensorVector<TensorVector<TensorRank2<D, I, K, <U as UnitMul<V>>::Output>>>
The resulting type after applying the
* operator.Source§impl<const D: usize, I, J, K, U, V> Mul<TensorVector<TensorVector<TensorRank2<D, J, K, V>>>> for &TensorRank2<D, I, J, U>where
U: UnitMul<V>,
impl<const D: usize, I, J, K, U, V> Mul<TensorVector<TensorVector<TensorRank2<D, J, K, V>>>> for &TensorRank2<D, I, J, U>where
U: UnitMul<V>,
Source§type Output = TensorVector<TensorVector<TensorRank2<D, I, K, <U as UnitMul<V>>::Output>>>
type Output = TensorVector<TensorVector<TensorRank2<D, I, K, <U as UnitMul<V>>::Output>>>
The resulting type after applying the
* operator.Source§impl<T> Mul<f64> for TensorVector<T>where
T: Tensor,
impl<T> Mul<f64> for TensorVector<T>where
T: Tensor,
Source§type Output = TensorVector<T>
type Output = TensorVector<T>
The resulting type after applying the
* operator.Source§impl<T> Mul<f64> for &TensorVector<T>
impl<T> Mul<f64> for &TensorVector<T>
Source§type Output = TensorVector<T>
type Output = TensorVector<T>
The resulting type after applying the
* operator.Source§impl<T> MulAssign<&f64> for TensorVector<T>where
T: Tensor,
impl<T> MulAssign<&f64> for TensorVector<T>where
T: Tensor,
Source§fn mul_assign(&mut self, tensor_rank_0: &TensorRank0)
fn mul_assign(&mut self, tensor_rank_0: &TensorRank0)
Performs the
*= operation. Read moreSource§impl<T> MulAssign<f64> for TensorVector<T>where
T: Tensor,
impl<T> MulAssign<f64> for TensorVector<T>where
T: Tensor,
Source§fn mul_assign(&mut self, tensor_rank_0: TensorRank0)
fn mul_assign(&mut self, tensor_rank_0: TensorRank0)
Performs the
*= operation. Read moreSource§impl<T: PartialEq> PartialEq for TensorVector<T>
impl<T: PartialEq> PartialEq for TensorVector<T>
Source§fn eq(&self, other: &TensorVector<T>) -> bool
fn eq(&self, other: &TensorVector<T>) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl<B, const D: usize> SecondOrderMinimize<Quantity<Energy>, TensorVector<TensorRank1<D, Current, Force>>, TensorRank2SparseVec2DSymmetric<D, Current, Current, ForcePerLength>, TensorVector<TensorRank1<D, Current, Length>>> for Model<B, D>where
B: HyperelasticElements<D>,
impl<B, const D: usize> SecondOrderMinimize<Quantity<Energy>, TensorVector<TensorRank1<D, Current, Force>>, TensorRank2SparseVec2DSymmetric<D, Current, Current, ForcePerLength>, TensorVector<TensorRank1<D, Current, Length>>> for Model<B, D>where
B: HyperelasticElements<D>,
fn minimize( &self, equality_constraint: EqualityConstraint, solver: impl SecondOrderOptimization<Quantity<Energy>, NodalForcesSolid<D>, NodalStiffnessesSolidSymmetric<D>, NodalCoordinates<D>>, ) -> Result<NodalCoordinates<D>, OptimizationError>
Source§impl<B, const D: usize> SecondOrderMinimize<Quantity<PowerTemperature>, TensorVector<Quantity<Power>>, TensorVector<QuantitySparseVec<PowerPerTemperature>>, TensorVector<Quantity<Temperature>>> for Model<B, D>where
B: ThermalConductionElements,
impl<B, const D: usize> SecondOrderMinimize<Quantity<PowerTemperature>, TensorVector<Quantity<Power>>, TensorVector<QuantitySparseVec<PowerPerTemperature>>, TensorVector<Quantity<Temperature>>> for Model<B, D>where
B: ThermalConductionElements,
fn minimize( &self, equality_constraint: EqualityConstraint, solver: impl SecondOrderOptimization<Quantity<PowerTemperature>, NodalForcesThermal, NodalStiffnessesThermal, NodalTemperatures>, ) -> Result<NodalTemperatures, OptimizationError>
impl<T: PartialEq> StructuralPartialEq for TensorVector<T>
Source§impl<T> Sub for TensorVector<T>where
T: Tensor,
impl<T> Sub for TensorVector<T>where
T: Tensor,
Source§impl<T> Sub for &TensorVector<T>where
T: Tensor,
impl<T> Sub for &TensorVector<T>where
T: Tensor,
Source§impl<T> Sub<&TensorVector<T>> for TensorVector<T>where
T: Tensor,
impl<T> Sub<&TensorVector<T>> for TensorVector<T>where
T: Tensor,
Source§impl<T> SubAssign for TensorVector<T>where
T: Tensor,
impl<T> SubAssign for TensorVector<T>where
T: Tensor,
Source§fn sub_assign(&mut self, tensor_vec: Self)
fn sub_assign(&mut self, tensor_vec: Self)
Performs the
-= operation. Read moreSource§impl<T> SubAssign<&TensorVector<T>> for TensorVector<T>where
T: Tensor,
impl<T> SubAssign<&TensorVector<T>> for TensorVector<T>where
T: Tensor,
Source§fn sub_assign(&mut self, tensor_vec: &Self)
fn sub_assign(&mut self, tensor_vec: &Self)
Performs the
-= operation. Read moreSource§impl<T> Sum for TensorVector<T>where
T: Tensor,
impl<T> Sum for TensorVector<T>where
T: Tensor,
Source§impl<T> Tensor for TensorVector<T>where
T: Tensor,
impl<T> Tensor for TensorVector<T>where
T: Tensor,
Source§fn iter_mut(&mut self) -> impl Iterator<Item = &mut Self::Item>
fn iter_mut(&mut self) -> impl Iterator<Item = &mut Self::Item>
Returns an iterator that allows modifying each value. Read more
Source§fn error_count_zero(&self, tol_abs: Scalar, tol_rel: Scalar) -> Option<usize>
fn error_count_zero(&self, tol_abs: Scalar, tol_rel: Scalar) -> Option<usize>
Returns number of nonzero entries given absolute and relative tolerances.
Source§fn error_count(
&self,
other: &Self,
tol_abs: Scalar,
tol_rel: Scalar,
) -> Option<usize>
fn error_count( &self, other: &Self, tol_abs: Scalar, tol_rel: Scalar, ) -> Option<usize>
Returns number of different entries given absolute and relative tolerances.
Source§fn full_contraction(&self, tensor: &Self) -> TensorRank0
fn full_contraction(&self, tensor: &Self) -> TensorRank0
Returns the full contraction with another tensor.
Source§fn norm_p_sum(&self, p: TensorRank0) -> TensorRank0
fn norm_p_sum(&self, p: TensorRank0) -> TensorRank0
Returns the sum of p-th powers of absolute values (used internally by
norm_p).Source§impl<T> TensorVec for TensorVector<T>where
T: Tensor,
impl<T> TensorVec for TensorVector<T>where
T: Tensor,
Source§fn append(&mut self, other: &mut Self)
fn append(&mut self, other: &mut Self)
Moves all the elements of other into self, leaving other empty.
Source§fn capacity(&self) -> usize
fn capacity(&self) -> usize
Returns the total number of elements the vector can hold without reallocating.
Source§fn new() -> Self
fn new() -> Self
Constructs a new, empty Vec, not allocating until elements are pushed onto it.
Source§fn remove(&mut self, index: usize) -> Self::Item
fn remove(&mut self, index: usize) -> Self::Item
Removes an element from the Vec and returns it, shifting elements to the left.
Source§fn reserve(&mut self, additional: usize)
fn reserve(&mut self, additional: usize)
Reserves capacity for at least additional more elements to be inserted in the given Vec.
Source§fn swap_remove(&mut self, index: usize) -> Self::Item
fn swap_remove(&mut self, index: usize) -> Self::Item
Removes an element from the Vec and returns it, replacing it with the last element.
Source§fn with_capacity(capacity: usize) -> Self
fn with_capacity(capacity: usize) -> Self
Constructs a new, empty vector with at least the specified capacity.
Source§impl<B, const D: usize> ZerothOrderRoot<TensorVector<Quantity<Power>>, TensorVector<Quantity<Temperature>>> for Model<B, D>where
B: ThermalConductionElements,
impl<B, const D: usize> ZerothOrderRoot<TensorVector<Quantity<Power>>, TensorVector<Quantity<Temperature>>> for Model<B, D>where
B: ThermalConductionElements,
fn root( &self, equality_constraint: EqualityConstraint, solver: impl ZerothOrderRootFinding<NodalForcesThermal, NodalTemperatures>, ) -> Result<NodalTemperatures, OptimizationError>
Source§impl<B, const D: usize> ZerothOrderRoot<TensorVector<TensorRank1<D, Current, Force>>, TensorVector<TensorRank1<D, Current, Length>>> for Model<B, D>where
B: ElasticElements<D>,
impl<B, const D: usize> ZerothOrderRoot<TensorVector<TensorRank1<D, Current, Force>>, TensorVector<TensorRank1<D, Current, Length>>> for Model<B, D>where
B: ElasticElements<D>,
fn root( &self, equality_constraint: EqualityConstraint, solver: impl ZerothOrderRootFinding<NodalForcesSolid<D>, NodalCoordinates<D>>, ) -> Result<NodalCoordinates<D>, OptimizationError>
Auto Trait Implementations§
impl<T> Freeze for TensorVector<T>
impl<T> RefUnwindSafe for TensorVector<T>where
T: RefUnwindSafe,
impl<T> Send for TensorVector<T>where
T: Send,
impl<T> Sync for TensorVector<T>where
T: Sync,
impl<T> Unpin for TensorVector<T>where
T: Unpin,
impl<T> UnsafeUnpin for TensorVector<T>
impl<T> UnwindSafe for TensorVector<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<'a, T> AssertEq<&'a T> for T
impl<'a, T> AssertEq<&'a T> for T
fn eq(a: T, b: &'a T) -> Result<(), AssertionError>
fn eq_within_tols(tols: &Assert, a: T, b: &'a T) -> Result<(), AssertionError>
Source§impl<'a, T> AssertFd<&'a T> for T
impl<'a, T> AssertFd<&'a T> for T
fn eq_within_fd_tol(tols: &Assert, a: T, b: &'a T) -> Result<(), AssertionError>
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