Initial commit

This commit is contained in:
redclawsystems
2026-03-04 00:08:42 +00:00
commit 4d88dc0584
4449 changed files with 1556714 additions and 0 deletions
@@ -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,
};
}