1#![warn(missing_docs)]
17
18pub mod adaptive_mesh;
19pub mod analysis;
20pub mod assembly;
21pub mod boundary;
22pub mod buckling;
23pub mod cohesive;
24pub mod composite_fem;
25pub mod constitutive;
26pub mod contact;
27pub mod contact_fem;
28pub mod contact_mechanics;
29pub mod coupled_fem;
30pub mod coupled_physics_fem;
31pub mod damage;
32pub mod dynamic;
33pub mod dynamics;
34pub mod eigen;
35pub mod eigenvalue;
36pub mod electrochemical_fem;
37pub mod electromagnetic;
38pub mod electromechanics;
39pub mod element;
40mod error;
41pub mod error_estimation;
42pub mod error_estimator;
43pub mod fluid_fem;
44pub mod fluid_structure;
45pub mod fracture;
46pub mod geomechanics_fem;
47pub mod homogenization;
48pub mod hyperelastic;
49pub mod inverse_problems;
50pub mod isogeometric;
51pub mod lbm_coupling;
52pub mod level_set;
53pub mod mesh;
54pub mod meshless;
55pub mod mixed_elements;
56pub mod modal;
57pub mod multiphysics_fem;
58pub mod multiscale;
59pub mod multiscale_fem;
60pub mod nonlinear;
61pub mod nonlinear_dynamics;
62pub mod nonlinear_fem;
63pub mod nonlinear_solver;
64pub mod optimization_fem;
65pub mod piezo;
66pub mod poromechanics;
67pub mod reduced_order;
68pub mod reliability;
69pub mod reliability_fem;
70pub mod shell;
71pub mod solvers;
72pub mod sparse;
73pub mod spectral_fem;
74pub mod stochastic_fem;
75pub mod thermal;
76pub mod thermal_fem;
77pub mod thermal_stress;
78pub mod topology_opt;
79pub mod topology_optimization;
80pub mod viscoelastic_fem;
81pub mod wave_propagation;
82pub mod xfem;
83
84pub mod parallel_solver;
85pub use parallel_solver::{
86 CsrMatrix as ParCsrMatrix, GmresWithAmg, ParallelAssembler, ParallelGmresSolver,
87 ParallelPcgSolver, PcgWithAmg, PcgWithPrecond,
88};
89
90pub mod perf_bench;
91pub use perf_bench::{
92 BenchHarness, BenchReport, BenchResult, SuiteConfig, banded_csr, bench_assembly,
93 bench_element_stiffness, bench_gmres, bench_pcg, bench_spmv, bench_spmv_parallel,
94 run_full_suite, run_suite, tridiagonal_csr,
95};
96
97pub use damage::{
98 CoupledDamagePlasticity, CrackBandModel, DamageBandLocalization, DamageCreepCoupling,
99 DamageEvolutionLaw, DamageHomogenization, DamageLawType, DamageMechanicsElement,
100 DamagePlasticityState, DamageRateLimiter, DamageState, DamageVisualization,
101 ElementDeletionManager, FailureMode, FatigueDamageModel, GursonModel, IsotropicDamage,
102 LemaitreCDM, LemaitreChabocheDamage, LemaitreDamage, MazarsDamage, NonLocalDamage,
103 NonlocalContinuumDamage, ScalarIsotropicDamage, ThermalDamage,
104};
105pub use electromechanics::*;
106pub use error::*;
107pub use homogenization::*;
108pub use modal::{ModalResult, inverse_iteration};
109pub use nonlinear::{ArcLengthControl, ConvergenceCriteria, NrResult, newton_raphson};
110pub use nonlinear_solver::*;
111
112pub trait FemSolver {
114 fn init(&mut self);
116}
117pub mod adaptive_fem;
118pub mod additive_manufacturing_fem;
119pub mod beam_fem;
120pub mod biomechanics_fem;
121pub mod boundary_element;
122pub mod contact_mech;
123pub mod crystal_plasticity;
124pub mod damage_mechanics;
125pub mod discontinuous_galerkin;
126pub mod explicit_fem;
127pub mod fatigue_fem;
128pub mod isogeometric_fem;
129pub mod meshfree_fem;
130pub mod probabilistic_fem;
131pub mod reduced_order_fem;
132pub mod shell_fem;
133pub mod soil_fem;
134pub mod topology_opt_fem;
135pub mod topology_optimization_ext;
136pub mod truss_frame;