Initial commit
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
//! Finite element model export library.
|
||||
//!
|
||||
//! This crate provides data structures and I/O capabilities for finite element
|
||||
//! models, with support for various FEM solver formats including LS-DYNA.
|
||||
//!
|
||||
//! # Features
|
||||
//!
|
||||
//! - **Model Data Structures**: Nodes, elements, parts, materials
|
||||
//! - **LS-DYNA Export**: Write .k keyword files for LS-DYNA
|
||||
//! - **LS-DYNA Import**: Read .k keyword files
|
||||
//! - **Material Support**: Linear elastic and Kelvin-Maxwell viscoelastic
|
||||
//!
|
||||
//! # Example
|
||||
//!
|
||||
//! ```ignore
|
||||
//! use rtx_fem_export::{FEModel, FEModelBuilder, ElementType, Material};
|
||||
//! use rtx_fem_export::lsdyna::write_k_file;
|
||||
//! use rtx_materials::LinearElastic;
|
||||
//!
|
||||
//! // Build a simple tetrahedral model
|
||||
//! let mut builder = FEModelBuilder::new("Brain Model", "MRI Study");
|
||||
//!
|
||||
//! // Add nodes
|
||||
//! let n1 = builder.add_node(0.0, 0.0, 0.0);
|
||||
//! let n2 = builder.add_node(1.0, 0.0, 0.0);
|
||||
//! let n3 = builder.add_node(0.5, 1.0, 0.0);
|
||||
//! let n4 = builder.add_node(0.5, 0.5, 1.0);
|
||||
//!
|
||||
//! // Add brain tissue material
|
||||
//! let mat_id = builder.add_material(Material::Elastic(LinearElastic::brain_tissue()));
|
||||
//!
|
||||
//! // Create part
|
||||
//! let part_id = builder.add_part("Brain", mat_id, ElementType::Tet4);
|
||||
//!
|
||||
//! // Add element
|
||||
//! builder.add_tet4(part_id, n1, n2, n3, n4);
|
||||
//!
|
||||
//! // Build and export
|
||||
//! let model = builder.build();
|
||||
//! write_k_file(&model, "brain.k")?;
|
||||
//! ```
|
||||
|
||||
pub mod error;
|
||||
pub mod lsdyna;
|
||||
pub mod model;
|
||||
|
||||
// Re-exports for convenience
|
||||
pub use error::{FemExportError, Result};
|
||||
pub use model::{Element, ElementType, FEModel, FEModelBuilder, Material, Node, NodeSet, Part};
|
||||
|
||||
/// Prelude module for commonly used items.
|
||||
pub mod prelude {
|
||||
pub use crate::error::{FemExportError, Result};
|
||||
pub use crate::lsdyna::{LsDynaOptions, read_k_file, write_k_file};
|
||||
pub use crate::model::{
|
||||
Element, ElementType, FEModel, FEModelBuilder, Material, Node, NodeSet, Part,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user