FEM

Struct FEM 

Source
pub struct FEM<V> { /* private fields */ }

Implementations§

Source§

impl<V> FEM<V>
where V: FloatTrait<Output = V>,

Source

pub fn create(rel_tol: V, abs_tol: V, nodes_number: u32) -> Self

Source

pub fn reset(&mut self, nodes_number: u32)

Source

pub fn get_truss_rotation_matrix_elements( &self, number: u32, ) -> Result<[V; 9], String>

Source

pub fn get_beam_rotation_matrix_elements( &self, number: u32, ) -> Result<[V; 9], String>

Source

pub fn get_plate_rotation_matrix_elements( &self, number: u32, ) -> Result<[V; 9], String>

Source§

impl<V> FEM<V>
where V: FloatTrait<Output = V>,

Source

pub fn add_node(&mut self, number: u32, x: V, y: V, z: V) -> Result<(), String>

Source§

impl<V> FEM<V>
where V: FloatTrait<Output = V>,

Source

pub fn add_truss( &mut self, number: u32, node_1_number: u32, node_2_number: u32, young_modulus: V, area: V, optional_area_2: Option<V>, ) -> Result<(), String>

Source§

impl<V> FEM<V>
where V: FloatTrait<Output = V>,

Source

pub fn add_concentrated_load( &mut self, node_number: u32, dof_parameter: DOFParameter, value: V, ) -> Result<(), String>

Source

pub fn add_uniformly_distributed_line_load( &mut self, beam_element_number: u32, dof_parameter: DOFParameter, value: V, ) -> Result<(), String>

Source

pub fn add_uniformly_distributed_surface_load( &mut self, plate_element_number: u32, dof_parameter: DOFParameter, value: V, ) -> Result<(), String>

Source

pub fn add_displacement( &mut self, node_number: u32, dof_parameter: DOFParameter, value: V, ) -> Result<(), String>

Source§

impl<V> FEM<V>
where V: FloatTrait<Output = V>,

Source

pub fn separate_stiffness_matrix_direct( &mut self, ) -> Result<SeparatedStiffnessMatrix<V>, String>

Source

pub fn separate_stiffness_matrix_sparse_iterative( &self, ) -> Result<SeparatedStiffnessMatrixSparse<V>, String>

Source

pub fn compose_r_a_vector( &self, k_aa_indexes: &Vec<usize>, ) -> Result<Vector<V>, String>

Source

pub fn compose_u_b_vector( &self, k_bb_indexes: &Vec<usize>, ) -> Result<Vector<V>, String>

Source§

impl<V> FEM<V>
where V: FloatTrait<Output = V>,

Source

pub fn find_ua_vector_direct( &self, separated_stiffness_matrix: &SeparatedStiffnessMatrix<V>, r_a_vector: &Vector<V>, u_b_vector: &Vector<V>, ) -> Result<Vector<V>, String>

Source

pub fn find_ua_vector_iterative_pcg_jacobi_sparse( &self, separated_stiffness_matrix_sparse: &SeparatedStiffnessMatrixSparse<V>, r_a_vector: &Vector<V>, u_b_vector: &Vector<V>, max_iter: usize, ) -> Result<(Vector<V>, usize), String>

Source

pub fn find_ua_vector_iterative_pcg_block_jacobi_sparse( &self, separated_stiffness_matrix_sparse: &SeparatedStiffnessMatrixSparse<V>, r_a_vector: &Vector<V>, u_b_vector: &Vector<V>, max_iter: usize, ) -> Result<(Vector<V>, usize), String>

Source

pub fn find_r_r_vector( &self, separated_stiffness_matrix: &SeparatedStiffnessMatrix<V>, u_a_vector: &Vector<V>, u_b_vector: &Vector<V>, ) -> Result<Vector<V>, String>

Source

pub fn find_r_r_vector_sparse( &self, sep: &SeparatedStiffnessMatrixSparse<V>, u_a_vector: &Vector<V>, u_b_vector: &Vector<V>, ) -> Result<Vector<V>, String>
where V: FloatTrait<Output = V>,

Source

pub fn compose_global_analysis_result( &mut self, k_aa_indexes: &[usize], k_bb_indexes: &[usize], u_a_vector: &Vector<V>, r_r_vector: &Vector<V>, ) -> Result<(), String>

Source

pub fn extract_global_analysis_result( &self, ) -> Result<Vec<(u32, DOFParameter, V, V)>, String>

Source§

impl<V> FEM<V>
where V: FloatTrait<Output = V>,

Source§

impl<V> FEM<V>
where V: FloatTrait<Output = V>,

Source

pub fn add_beam( &mut self, number: u32, node_1_number: u32, node_2_number: u32, young_modulus: V, poisson_ratio: V, area: V, i11: V, i22: V, i12: V, it: V, shear_factor: V, local_axis_1_direction: [V; 3], ) -> Result<(), String>

Source§

impl<V> FEM<V>
where V: FloatTrait<Output = V>,

Source

pub fn add_plate( &mut self, number: u32, node_1_number: u32, node_2_number: u32, node_3_number: u32, node_4_number: u32, young_modulus: V, poisson_ratio: V, thickness: V, shear_factor: V, ) -> Result<(), String>

Auto Trait Implementations§

§

impl<V> Freeze for FEM<V>
where V: Freeze,

§

impl<V> RefUnwindSafe for FEM<V>
where V: RefUnwindSafe,

§

impl<V> Send for FEM<V>
where V: Send,

§

impl<V> Sync for FEM<V>
where V: Sync,

§

impl<V> Unpin for FEM<V>
where V: Unpin,

§

impl<V> UnwindSafe for FEM<V>
where V: UnwindSafe,

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

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

§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.