[−][src]Struct nphysics2d::object::FEMSurface
A deformable surface using FEM to simulate linear elasticity.
The surface is described by a set of triangle elements. This implements an isoparametric approach where the interpolations are linear.
Implementations
impl<N: RealField> FEMSurface<N>
[src]
pub fn user_data(&self) -> Option<&(dyn Any + Send + Sync)>
[src]
Retrieves a reference to the user-defined user-data attached to this object.
pub fn user_data_mut(&mut self) -> Option<&mut (dyn Any + Send + Sync)>
[src]
Retrieves a mutable reference to the user-defined user-data attached to this object.
pub fn set_user_data(
&mut self,
data: Option<Box<dyn Any + Send + Sync>>
) -> Option<Box<dyn Any + Send + Sync>>
[src]
&mut self,
data: Option<Box<dyn Any + Send + Sync>>
) -> Option<Box<dyn Any + Send + Sync>>
Sets the user-defined data attached to this object.
pub fn take_user_data(&mut self) -> Option<Box<dyn Any + Send + Sync>>
[src]
Replace by None
the user-defined data attached to this object and returns the old value.
pub fn positions(&self) -> &DVector<N>
[src]
The position of this body in generalized coordinates.
pub fn positions_mut(&mut self) -> &mut DVector<N>
[src]
The position of this body in generalized coordinates.
pub fn velocities(&self) -> &DVector<N>
[src]
The velocity of this body in generalized coordinates.
pub fn velocities_mut(&mut self) -> &mut DVector<N>
[src]
The mutable velocity of this body in generalized coordinates.
pub fn set_plasticity(&mut self, strain_threshold: N, creep: N, max_force: N)
[src]
Sets the plastic properties of this deformable surface.
Note that large plasticity creep coefficient can yield to significant instability.
pub fn set_young_modulus(&mut self, young_modulus: N)
[src]
Sets the young modulus of this deformable surface.
pub fn set_poisson_ratio(&mut self, poisson_ratio: N)
[src]
Sets the poisson ratio of this deformable surface.
pub fn boundary(&self) -> Vec<(Point2<usize>, usize)>
[src]
Returns the triangles at the boundary of this surface.
Each element of the returned Vec
is a tuple containing the 3 indices of the triangle
vertices, and the index of the corresponding triangle element.
pub fn boundary_polyline(&self) -> (Polyline<N>, Vec<usize>, Vec<usize>)
[src]
Returns a triangle mesh at the boundary of this surface as well as a mapping between the mesh vertices and this surface degrees of freedom and the mapping between the mesh triangles and this surface body parts (the triangle elements).
The output is (triangle mesh, deformation indices, element to body part map).
pub fn boundary_collider_desc(&mut self) -> DeformableColliderDesc<N>
[src]
Computes the DeformableColliderDesc
that can generate a collider covering the boundary polyline of this FEM surface.
As a side-effect, this will rearrange the degrees-of-freedom (DOF) of this FEM surface so that all the DOFs linked to the boundary collider are located at the beginning of the array of DOFs of this surface.
pub fn renumber_dofs(&mut self, deformation_indices: &[usize])
[src]
Renumber degrees of freedom so that the deformation_indices[i]
-th DOF becomes the i
-th one.
pub fn set_node_kinematic(&mut self, i: usize, is_kinematic: bool)
[src]
Restrict the specified node acceleration to always be zero so it can be controlled manually by the user at the velocity level.
pub fn clear_kinematic_nodes(&mut self)
[src]
Mark all nodes as non-kinematic.
Trait Implementations
impl<N: RealField> Body<N> for FEMSurface<N>
[src]
pub fn gravity_enabled(&self) -> bool
[src]
pub fn enable_gravity(&mut self, enabled: bool)
[src]
pub fn deformed_positions(&self) -> Option<(DeformationsType, &[N])>
[src]
pub fn deformed_positions_mut(&mut self) -> Option<(DeformationsType, &mut [N])>
[src]
pub fn update_kinematics(&mut self)
[src]
pub fn update_dynamics(&mut self, dt: N)
[src]
Update the dynamics property of this deformable surface.
pub fn update_acceleration(
&mut self,
gravity: &Vector<N>,
parameters: &IntegrationParameters<N>
)
[src]
&mut self,
gravity: &Vector<N>,
parameters: &IntegrationParameters<N>
)
Update the dynamics property of this deformable surface.
pub fn clear_forces(&mut self)
[src]
pub fn clear_update_flags(&mut self)
[src]
pub fn update_status(&self) -> BodyUpdateStatus
[src]
pub fn apply_displacement(&mut self, disp: &[N])
[src]
pub fn status(&self) -> BodyStatus
[src]
pub fn set_status(&mut self, status: BodyStatus)
[src]
pub fn activation_status(&self) -> &ActivationStatus<N>
[src]
pub fn ndofs(&self) -> usize
[src]
pub fn generalized_acceleration(&self) -> DVectorSlice<'_, N>
[src]
pub fn generalized_velocity(&self) -> DVectorSlice<'_, N>
[src]
pub fn companion_id(&self) -> usize
[src]
pub fn set_companion_id(&mut self, id: usize)
[src]
pub fn generalized_velocity_mut(&mut self) -> DVectorSliceMut<'_, N>
[src]
pub fn integrate(&mut self, parameters: &IntegrationParameters<N>)
[src]
pub fn activate_with_energy(&mut self, energy: N)
[src]
pub fn deactivate(&mut self)
[src]
pub fn set_deactivation_threshold(&mut self, threshold: Option<N>)
[src]
pub fn num_parts(&self) -> usize
[src]
pub fn part(&self, id: usize) -> Option<&dyn BodyPart<N>>
[src]
pub fn world_point_at_material_point(
&self,
part: &dyn BodyPart<N>,
point: &Point<N>
) -> Point<N>
[src]
&self,
part: &dyn BodyPart<N>,
point: &Point<N>
) -> Point<N>
pub fn position_at_material_point(
&self,
part: &dyn BodyPart<N>,
point: &Point<N>
) -> Isometry<N>
[src]
&self,
part: &dyn BodyPart<N>,
point: &Point<N>
) -> Isometry<N>
pub fn material_point_at_world_point(
&self,
part: &dyn BodyPart<N>,
point: &Point<N>
) -> Point<N>
[src]
&self,
part: &dyn BodyPart<N>,
point: &Point<N>
) -> Point<N>
pub fn fill_constraint_geometry(
&self,
part: &dyn BodyPart<N>,
_: usize,
center: &Point<N>,
force_dir: &ForceDirection<N>,
j_id: usize,
wj_id: usize,
jacobians: &mut [N],
inv_r: &mut N,
ext_vels: Option<&DVectorSlice<'_, N>>,
out_vel: Option<&mut N>
)
[src]
&self,
part: &dyn BodyPart<N>,
_: usize,
center: &Point<N>,
force_dir: &ForceDirection<N>,
j_id: usize,
wj_id: usize,
jacobians: &mut [N],
inv_r: &mut N,
ext_vels: Option<&DVectorSlice<'_, N>>,
out_vel: Option<&mut N>
)
pub fn has_active_internal_constraints(&mut self) -> bool
[src]
pub fn setup_internal_velocity_constraints(
&mut self,
_: &DVectorSlice<'_, N>,
_: &IntegrationParameters<N>
)
[src]
&mut self,
_: &DVectorSlice<'_, N>,
_: &IntegrationParameters<N>
)
pub fn warmstart_internal_velocity_constraints(
&mut self,
_: &mut DVectorSliceMut<'_, N>
)
[src]
&mut self,
_: &mut DVectorSliceMut<'_, N>
)
pub fn step_solve_internal_velocity_constraints(
&mut self,
_: &mut DVectorSliceMut<'_, N>
)
[src]
&mut self,
_: &mut DVectorSliceMut<'_, N>
)
pub fn step_solve_internal_position_constraints(
&mut self,
_: &IntegrationParameters<N>
)
[src]
&mut self,
_: &IntegrationParameters<N>
)
pub fn velocity_at_point(&self, part_id: usize, point: &Point<N>) -> Velocity<N>
[src]
pub fn apply_force_at_local_point(
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
pub fn apply_force(
&mut self,
part_id: usize,
force: &Force<N>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Force<N>,
force_type: ForceType,
auto_wake_up: bool
)
pub fn apply_local_force(
&mut self,
part_id: usize,
force: &Force<N>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Force<N>,
force_type: ForceType,
auto_wake_up: bool
)
pub fn apply_force_at_point(
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
pub fn apply_local_force_at_point(
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
pub fn apply_local_force_at_local_point(
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
pub fn is_ground(&self) -> bool
[src]
pub fn update_activation_status(&mut self)
[src]
pub fn advance(&mut self, _time_ratio: N)
[src]
pub fn validate_advancement(&mut self)
[src]
pub fn clamp_advancement(&mut self)
[src]
pub fn part_motion(
&self,
_part_id: usize,
_time_origin: N
) -> Option<BodyPartMotion<N>>
[src]
&self,
_part_id: usize,
_time_origin: N
) -> Option<BodyPartMotion<N>>
pub fn step_started(&mut self)
[src]
pub fn add_local_inertia_and_com(
&mut self,
_part_index: usize,
_com: Point<N>,
_inertia: Inertia<N>
)
[src]
&mut self,
_part_index: usize,
_com: Point<N>,
_inertia: Inertia<N>
)
pub fn status_dependent_ndofs(&self) -> usize
[src]
pub fn status_dependent_body_part_velocity(
&self,
part: &dyn BodyPart<N>
) -> Velocity<N>
[src]
&self,
part: &dyn BodyPart<N>
) -> Velocity<N>
pub fn is_active(&self) -> bool
[src]
pub fn is_dynamic(&self) -> bool
[src]
pub fn is_kinematic(&self) -> bool
[src]
pub fn is_static(&self) -> bool
[src]
pub fn activate(&mut self)
[src]
Auto Trait Implementations
impl<N> !RefUnwindSafe for FEMSurface<N>
[src]
impl<N> Send for FEMSurface<N> where
N: Scalar,
[src]
N: Scalar,
impl<N> Sync for FEMSurface<N> where
N: Scalar,
[src]
N: Scalar,
impl<N> Unpin for FEMSurface<N> where
N: Scalar + Unpin,
[src]
N: Scalar + Unpin,
impl<N> !UnwindSafe for FEMSurface<N>
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Downcast for T where
T: Any,
[src]
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
[src]
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
[src]
pub fn as_any(&self) -> &(dyn Any + 'static)
[src]
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
[src]
impl<T> DowncastSync for T where
T: Send + Sync + Any,
[src]
T: Send + Sync + Any,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
[src]
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
[src]
pub fn is_in_subset(&self) -> bool
[src]
pub fn to_subset_unchecked(&self) -> SS
[src]
pub fn from_subset(element: &SS) -> SP
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,