Skip to main content

Blocks

Struct Blocks 

Source
pub struct Blocks<B1, B2>(/* private fields */);

Trait Implementations§

Source§

impl<B1: Debug, B2: Debug> Debug for Blocks<B1, B2>

Source§

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

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

impl<B1, B2, const D: usize> ElasticElements<D> for Blocks<B1, B2>
where B1: ElasticElements<D>, B2: 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<B1, B2, const D: usize> ElasticHyperviscousElements<D> for Blocks<B1, B2>

Source§

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

Source§

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

Source§

impl<B1, B2, Y, const D: usize> ElasticViscoplasticDaeElements<Y, D> for Blocks<B1, B2>

Source§

type Field = Product<<B1 as ElasticViscoplasticDaeElements<Y, D>>::Field, <B2 as ElasticViscoplasticDaeElements<Y, D>>::Field>

The whole-mesh field this topology’s plastic state lives on.
Source§

type State = TensorTuple<<B1 as ElasticViscoplasticDaeElements<Y, D>>::State, <B2 as ElasticViscoplasticDaeElements<Y, D>>::State>

The per-element grouped state — a per-Gauss-point list for one block, a TensorTuple of those for Blocks.
Source§

type History = TensorVector<TensorTuple<<B1 as ElasticViscoplasticDaeElements<Y, D>>::State, <B2 as ElasticViscoplasticDaeElements<Y, D>>::State>>

Time history of Self::State.
Source§

fn flatten(state: &Self::State) -> <Self::Field as Integrable>::Point

Flattens Self::State into Self::Field’s Point.
Source§

fn unflatten(flat: &<Self::Field as Integrable>::Point) -> Self::State

The inverse of Self::flatten.
Source§

fn dae_rate( &self, t: Quantity<Time>, nodal_coordinates: &NodalCoordinates<D>, flat: &<Self::Field as Integrable>::Point, ) -> Result<Derivative<<Self::Field as Integrable>::Increment, Time>, ElementModelError>

Evaluates every Gauss point’s plastic rate at nodal_coordinates.
Source§

impl<B1, B2, S1, S2, const D: usize> ElasticViscoplasticElements<TensorTuple<S1, S2>, D> for Blocks<B1, B2>

Source§

fn initial_state(&self) -> TensorTuple<S1, S2>

Source§

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

Source§

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

Source§

fn state_variables_evolution( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &TensorTuple<S1, S2>, ) -> Result<Derivative<TensorTuple<S1, S2>>, 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<B1, B2> Elements for Blocks<B1, B2>
where B1: Elements, B2: Elements,

Source§

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

Source§

impl<B1, B2, const D: usize> HyperelasticElements<D> for Blocks<B1, B2>

Source§

impl<B1, B2, S1, S2, const D: usize> HyperelasticViscoplasticElements<TensorTuple<S1, S2>, D> for Blocks<B1, B2>

Source§

fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &TensorTuple<S1, S2>, ) -> Result<Quantity<Energy>, ElementModelError>

Source§

impl<B1, B2, const D: usize> HyperviscoelasticElements<D> for Blocks<B1, B2>

Source§

impl<B1, B2> ThermalConductionElements for Blocks<B1, B2>

Source§

impl<B1, B2, const D: usize> ViscoelasticElements<D> for Blocks<B1, B2>

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 NodalDampingsSolid<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<NodalDampingsSolid<D>, ElementModelError>

Auto Trait Implementations§

§

impl<B1, B2> Freeze for Blocks<B1, B2>
where B1: Freeze, B2: Freeze,

§

impl<B1, B2> RefUnwindSafe for Blocks<B1, B2>

§

impl<B1, B2> Send for Blocks<B1, B2>
where B1: Send, B2: Send,

§

impl<B1, B2> Sync for Blocks<B1, B2>
where B1: Sync, B2: Sync,

§

impl<B1, B2> Unpin for Blocks<B1, B2>
where B1: Unpin, B2: Unpin,

§

impl<B1, B2> UnsafeUnpin for Blocks<B1, B2>
where B1: UnsafeUnpin, B2: UnsafeUnpin,

§

impl<B1, B2> UnwindSafe for Blocks<B1, B2>
where B1: UnwindSafe, B2: 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> Is<T> for T

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.