Skip to main content

Model

Struct Model 

Source
pub struct Model<B, const D: usize> { /* private fields */ }

Implementations§

Source§

impl<B, const D: usize> Model<B, D>

Source

pub fn blocks(&self) -> &B

Trait Implementations§

Source§

impl<B: Debug, const D: usize> Debug for Model<B, D>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<B, const D: usize> ElasticElements<D> for Model<B, D>
where B: ElasticElements<D>,

Source§

fn nodal_forces_into( &self, nodal_coordinates: &NodalCoordinates<D>, nodal_forces: &mut NodalForcesSolid<D>, ) -> Result<(), ElementModelError>

Source§

fn nodal_stiffnesses_into( &self, nodal_coordinates: &NodalCoordinates<D>, nodal_stiffnesses: &mut NodalStiffnessesSolid<D>, ) -> Result<(), ElementModelError>

Source§

fn nodal_forces( &self, nodal_coordinates: &NodalCoordinates<D>, ) -> Result<NodalForcesSolid<D>, ElementModelError>

Source§

fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinates<D>, ) -> Result<NodalStiffnessesSolid<D>, ElementModelError>

Source§

impl<B, const D: usize> ElasticHyperviscousElements<D> for Model<B, D>

Source§

fn viscous_dissipation( &self, nodal_coordinates: &NodalCoordinates<D>, nodal_velocities: &NodalVelocities<D>, ) -> Result<Scalar, ElementModelError>

Source§

fn dissipation_potential( &self, nodal_coordinates: &NodalCoordinates<D>, nodal_velocities: &NodalVelocities<D>, ) -> Result<Scalar, ElementModelError>

Source§

impl<B, S, const D: usize> ElasticViscoplasticElements<S, D> for Model<B, D>

Source§

fn initial_state(&self) -> S

Source§

fn nodal_forces_into( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &S, nodal_forces: &mut NodalForcesSolid<D>, ) -> Result<(), ElementModelError>

Source§

fn nodal_stiffnesses_into( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &S, nodal_stiffnesses: &mut NodalStiffnessesSolid<D>, ) -> Result<(), ElementModelError>

Source§

fn state_variables_evolution( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &S, ) -> Result<S, ElementModelError>

Source§

fn nodal_forces( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &S, ) -> Result<NodalForcesSolid<D>, ElementModelError>

Source§

fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &S, ) -> Result<NodalStiffnessesSolid<D>, ElementModelError>

Source§

impl<B, const D: usize> ElementModel<D> for Model<B, D>
where B: Debug,

Source§

impl<B, const D: usize> Elements for Model<B, D>
where B: Elements,

Source§

fn node_neighbors(&self, neighbors: &mut [Vec<usize>])

Source§

impl<B, const D: usize> FirstOrderMinimize<f64, TensorVector<TensorRank1<D, 1>>> for Model<B, D>

Source§

impl<B, const D: usize> FirstOrderMinimize<f64, Vector> for Model<B, D>

Source§

impl<B, const D: usize> FirstOrderRoot<D> for Model<B, D>

Source§

impl<B, S, H, const D: usize> FirstOrderRoot<S, H, D> for Model<B, D>
where B: ElasticViscoplasticElements<S, D>, S: Tensor, H: TensorVec<Item = S>,

Source§

impl<B, const D: usize> FirstOrderRoot<TensorVector<TensorRank1<D, 1>>, TensorVector<TensorRank2SparseVec<D, 1, 1>>, TensorVector<TensorRank1<D, 1>>> for Model<B, D>
where B: ElasticElements<D>,

Source§

impl<B, const D: usize> FirstOrderRoot<Vector, SquareMatrix, Vector> for Model<B, D>

Source§

impl<B, const D: usize> From<(B, TensorVector<TensorRank1<D, 0>>)> for Model<B, D>

Source§

fn from((blocks, coordinates): (B, NodalReferenceCoordinates<D>)) -> Self

Converts to this type from the input type.
Source§

impl<B, const D: usize> HyperelasticElements<D> for Model<B, D>

Source§

impl<B, S, const D: usize> HyperelasticViscoplasticElements<S, D> for Model<B, D>

Source§

fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &S, ) -> Result<Scalar, ElementModelError>

Source§

impl<B, const D: usize> HyperviscoelasticElements<D> for Model<B, D>

Source§

impl<B, const D: usize> SecondOrderMinimize<D> for Model<B, D>

Source§

impl<B, S, H, const D: usize> SecondOrderMinimize<S, H, D> for Model<B, D>
where B: HyperelasticViscoplasticElements<S, D>, S: Tensor, H: TensorVec<Item = S>,

Source§

impl<B, const D: usize> SecondOrderMinimize<f64, TensorVector<TensorRank1<D, 1>>, TensorRank2SparseVec2DSymmetric<D, 1, 1>, TensorVector<TensorRank1<D, 1>>> for Model<B, D>

Source§

impl<B, const D: usize> SecondOrderMinimize<f64, Vector, SquareMatrix, Vector> for Model<B, D>

Source§

impl<B, const D: usize> ThermalConductionElements for Model<B, D>

Source§

impl<C, F, const G: usize, const N: usize, const P: usize> TryFrom<(Mesh<2>, C)> for Model<Block<C, F, G, 2, N, P>, 2>

Source§

type Error = String

The type returned in the event of a conversion error.
Source§

fn try_from( (mesh, constitutive_model): (Mesh<2>, C), ) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<C1, C2, F1, F2, const G1: usize, const N1: usize, const P1: usize, const G2: usize, const N2: usize, const P2: usize> TryFrom<(Mesh<3>, (C1, C2))> for Model<Blocks<Block<C1, F1, G1, 3, N1, P1>, Block<C2, F2, G2, 3, N2, P2>>, 3>
where F1: FiniteElement<G1, 3, N1, P1> + From<ElementNodalReferenceCoordinates<N1>>, F2: FiniteElement<G2, 3, N2, P2> + From<ElementNodalReferenceCoordinates<N2>>, PrimitiveConnectivity<3, N1>: TryFrom<Connectivity, Error = &'static str>, PrimitiveConnectivity<3, N2>: TryFrom<Connectivity, Error = &'static str>,

Source§

type Error = String

The type returned in the event of a conversion error.
Source§

fn try_from( (mesh, (constitutive_model_1, constitutive_model_2)): (Mesh<3>, (C1, C2)), ) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<C1, C2, F1, F2, const G1: usize, const N1: usize, const P1: usize, const G2: usize, const N2: usize, const P2: usize> TryFrom<(Mesh<3>, (C1, C2))> for Model<ElasticViscoplasticAndElastic<Block<C1, F1, G1, 3, N1, P1>, Block<C2, F2, G2, 3, N2, P2>>, 3>
where F1: FiniteElement<G1, 3, N1, P1> + From<ElementNodalReferenceCoordinates<N1>>, F2: FiniteElement<G2, 3, N2, P2> + From<ElementNodalReferenceCoordinates<N2>>, PrimitiveConnectivity<3, N1>: TryFrom<Connectivity, Error = &'static str>, PrimitiveConnectivity<3, N2>: TryFrom<Connectivity, Error = &'static str>,

Source§

type Error = String

The type returned in the event of a conversion error.
Source§

fn try_from( (mesh, (constitutive_model_1, constitutive_model_2)): (Mesh<3>, (C1, C2)), ) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<C, F> TryFrom<(Mesh<3>, C)> for Model<Block<C, F>, 3>
where F: VirtualElement,

Source§

type Error = String

The type returned in the event of a conversion error.
Source§

fn try_from( (mesh, constitutive_model): (Mesh<3>, C), ) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<C, F, const G: usize, const N: usize, const P: usize> TryFrom<(Mesh<3>, C)> for Model<Block<C, F, G, 3, N, P>, 3>

Source§

type Error = String

The type returned in the event of a conversion error.
Source§

fn try_from( (mesh, constitutive_model): (Mesh<3>, C), ) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<B, const D: usize> ViscoelasticElements<D> for Model<B, D>

Source§

fn nodal_forces_into( &self, nodal_coordinates: &NodalCoordinates<D>, nodal_velocities: &NodalVelocities<D>, nodal_forces: &mut NodalForcesSolid<D>, ) -> Result<(), ElementModelError>

Source§

fn nodal_stiffnesses_into( &self, nodal_coordinates: &NodalCoordinates<D>, nodal_velocities: &NodalVelocities<D>, nodal_stiffnesses: &mut NodalStiffnessesSolid<D>, ) -> Result<(), ElementModelError>

Source§

fn nodal_forces( &self, nodal_coordinates: &NodalCoordinates<D>, nodal_velocities: &NodalVelocities<D>, ) -> Result<NodalForcesSolid<D>, ElementModelError>

Source§

fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinates<D>, nodal_velocities: &NodalVelocities<D>, ) -> Result<NodalStiffnessesSolid<D>, ElementModelError>

Source§

impl<B, const D: usize> ZerothOrderRoot<TensorVector<TensorRank1<D, 1>>> for Model<B, D>
where B: ElasticElements<D>,

Source§

impl<B, const D: usize> ZerothOrderRoot<Vector> for Model<B, D>

Auto Trait Implementations§

§

impl<B, const D: usize> Freeze for Model<B, D>
where B: Freeze,

§

impl<B, const D: usize> RefUnwindSafe for Model<B, D>
where B: RefUnwindSafe,

§

impl<B, const D: usize> Send for Model<B, D>
where B: Send,

§

impl<B, const D: usize> Sync for Model<B, D>
where B: Sync,

§

impl<B, const D: usize> Unpin for Model<B, D>
where B: Unpin,

§

impl<B, const D: usize> UnsafeUnpin for Model<B, D>
where B: UnsafeUnpin,

§

impl<B, const D: usize> UnwindSafe for Model<B, D>
where B: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.