fibernet 1.24.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. fibernet-1.24.0/CHANGELOG.md +239 -0
  2. fibernet-1.24.0/CONTRIBUTING.md +131 -0
  3. fibernet-1.24.0/LICENSE +21 -0
  4. fibernet-1.24.0/MANIFEST.in +17 -0
  5. fibernet-1.24.0/PKG-INFO +452 -0
  6. fibernet-1.24.0/README.md +385 -0
  7. fibernet-1.24.0/docs/api/index.rst +98 -0
  8. fibernet-1.24.0/docs/changelog.rst +86 -0
  9. fibernet-1.24.0/docs/conf.py +49 -0
  10. fibernet-1.24.0/docs/contributing.rst +119 -0
  11. fibernet-1.24.0/docs/getting_started.rst +123 -0
  12. fibernet-1.24.0/docs/index.rst +80 -0
  13. fibernet-1.24.0/docs/quickstart.rst +219 -0
  14. fibernet-1.24.0/docs/tutorials.rst +55 -0
  15. fibernet-1.24.0/examples/01_mechanical_analysis.py +59 -0
  16. fibernet-1.24.0/examples/02_structure_comparison.py +77 -0
  17. fibernet-1.24.0/examples/03_thermal_analysis.py +68 -0
  18. fibernet-1.24.0/examples/04_buckling_analysis.py +54 -0
  19. fibernet-1.24.0/examples/05_chiral_braided_structures.py +67 -0
  20. fibernet-1.24.0/examples/06_uncertainty_quantification.py +77 -0
  21. fibernet-1.24.0/examples/07_electromagnetic_analysis.py +77 -0
  22. fibernet-1.24.0/examples/08_fatigue_analysis.py +95 -0
  23. fibernet-1.24.0/examples/09_creep_analysis.py +102 -0
  24. fibernet-1.24.0/examples/10_diffusion_transport.py +91 -0
  25. fibernet-1.24.0/examples/11_parameter_sweep.py +128 -0
  26. fibernet-1.24.0/examples/12_topology_analysis.py +136 -0
  27. fibernet-1.24.0/examples/13_publication_workflow.py +191 -0
  28. fibernet-1.24.0/examples/14_advanced_analysis.py +179 -0
  29. fibernet-1.24.0/examples/15_ml_property_prediction.py +222 -0
  30. fibernet-1.24.0/examples/16_fiber_bundles.py +177 -0
  31. fibernet-1.24.0/examples/17_composite_laminates.py +193 -0
  32. fibernet-1.24.0/examples/18_pyvista_visualization.py +153 -0
  33. fibernet-1.24.0/examples/19_optimization.py +225 -0
  34. fibernet-1.24.0/examples/__init__.py +15 -0
  35. fibernet-1.24.0/examples/advanced_generators.py +81 -0
  36. fibernet-1.24.0/examples/comprehensive_demo.py +198 -0
  37. fibernet-1.24.0/examples/full_workflow.py +177 -0
  38. fibernet-1.24.0/examples/integration_examples.py +566 -0
  39. fibernet-1.24.0/examples/ml_example.py +154 -0
  40. fibernet-1.24.0/examples/nonlinear_mechanics.py +174 -0
  41. fibernet-1.24.0/examples/research_case_study.py +186 -0
  42. fibernet-1.24.0/examples/transformations.py +102 -0
  43. fibernet-1.24.0/fibernet/__init__.py +167 -0
  44. fibernet-1.24.0/fibernet/analysis/__init__.py +65 -0
  45. fibernet-1.24.0/fibernet/analysis/advanced.py +269 -0
  46. fibernet-1.24.0/fibernet/analysis/comparison.py +309 -0
  47. fibernet-1.24.0/fibernet/analysis/homogenization.py +351 -0
  48. fibernet-1.24.0/fibernet/analysis/morphology.py +145 -0
  49. fibernet-1.24.0/fibernet/analysis/networkx_integration.py +350 -0
  50. fibernet-1.24.0/fibernet/analysis/percolation.py +385 -0
  51. fibernet-1.24.0/fibernet/analysis/properties.py +100 -0
  52. fibernet-1.24.0/fibernet/analysis/spatial.py +536 -0
  53. fibernet-1.24.0/fibernet/analysis/statistics.py +337 -0
  54. fibernet-1.24.0/fibernet/analysis/stress_strain.py +293 -0
  55. fibernet-1.24.0/fibernet/analysis/topology.py +463 -0
  56. fibernet-1.24.0/fibernet/api.py +362 -0
  57. fibernet-1.24.0/fibernet/core/__init__.py +22 -0
  58. fibernet-1.24.0/fibernet/core/copy_utils.py +127 -0
  59. fibernet-1.24.0/fibernet/core/crosslinks.py +630 -0
  60. fibernet-1.24.0/fibernet/core/fiber.py +380 -0
  61. fibernet-1.24.0/fibernet/core/material.py +290 -0
  62. fibernet-1.24.0/fibernet/core/network.py +748 -0
  63. fibernet-1.24.0/fibernet/core/pbc.py +246 -0
  64. fibernet-1.24.0/fibernet/core/transform.py +500 -0
  65. fibernet-1.24.0/fibernet/doe.py +471 -0
  66. fibernet-1.24.0/fibernet/examples/__init__.py +0 -0
  67. fibernet-1.24.0/fibernet/examples/basic_usage.py +104 -0
  68. fibernet-1.24.0/fibernet/gen/__init__.py +198 -0
  69. fibernet-1.24.0/fibernet/gen/advanced.py +750 -0
  70. fibernet-1.24.0/fibernet/gen/bundles.py +477 -0
  71. fibernet-1.24.0/fibernet/gen/chiral.py +319 -0
  72. fibernet-1.24.0/fibernet/gen/curved.py +444 -0
  73. fibernet-1.24.0/fibernet/gen/disordered.py +577 -0
  74. fibernet-1.24.0/fibernet/gen/fractal.py +311 -0
  75. fibernet-1.24.0/fibernet/gen/gradient.py +340 -0
  76. fibernet-1.24.0/fibernet/gen/hierarchical.py +269 -0
  77. fibernet-1.24.0/fibernet/gen/laminates.py +551 -0
  78. fibernet-1.24.0/fibernet/gen/metamaterials.py +945 -0
  79. fibernet-1.24.0/fibernet/gen/ordered.py +341 -0
  80. fibernet-1.24.0/fibernet/gen/specialized.py +569 -0
  81. fibernet-1.24.0/fibernet/gen/variants.py +422 -0
  82. fibernet-1.24.0/fibernet/gen/woven.py +268 -0
  83. fibernet-1.24.0/fibernet/integrations/__init__.py +77 -0
  84. fibernet-1.24.0/fibernet/integrations/lammps_integration.py +342 -0
  85. fibernet-1.24.0/fibernet/integrations/mdanalysis_integration.py +229 -0
  86. fibernet-1.24.0/fibernet/integrations/networkx_integration.py +413 -0
  87. fibernet-1.24.0/fibernet/integrations/ovito_integration.py +292 -0
  88. fibernet-1.24.0/fibernet/io/__init__.py +54 -0
  89. fibernet-1.24.0/fibernet/io/fea_export.py +454 -0
  90. fibernet-1.24.0/fibernet/io/gmsh.py +87 -0
  91. fibernet-1.24.0/fibernet/io/lammps.py +296 -0
  92. fibernet-1.24.0/fibernet/io/mesh_export.py +366 -0
  93. fibernet-1.24.0/fibernet/io/pandas_io.py +172 -0
  94. fibernet-1.24.0/fibernet/io/pdb.py +143 -0
  95. fibernet-1.24.0/fibernet/io/vtk.py +156 -0
  96. fibernet-1.24.0/fibernet/io/xyz.py +84 -0
  97. fibernet-1.24.0/fibernet/materials.py +558 -0
  98. fibernet-1.24.0/fibernet/ml/__init__.py +35 -0
  99. fibernet-1.24.0/fibernet/ml/dataset.py +265 -0
  100. fibernet-1.24.0/fibernet/ml/features.py +525 -0
  101. fibernet-1.24.0/fibernet/ml/graph_neural_network.py +523 -0
  102. fibernet-1.24.0/fibernet/ml/predictor.py +253 -0
  103. fibernet-1.24.0/fibernet/py.typed +0 -0
  104. fibernet-1.24.0/fibernet/pyvista_viz.py +430 -0
  105. fibernet-1.24.0/fibernet/sim/__init__.py +244 -0
  106. fibernet-1.24.0/fibernet/sim/accelerated.py +716 -0
  107. fibernet-1.24.0/fibernet/sim/acoustic.py +473 -0
  108. fibernet-1.24.0/fibernet/sim/buckling_analysis.py +460 -0
  109. fibernet-1.24.0/fibernet/sim/coupled.py +556 -0
  110. fibernet-1.24.0/fibernet/sim/coupling.py +136 -0
  111. fibernet-1.24.0/fibernet/sim/creep.py +386 -0
  112. fibernet-1.24.0/fibernet/sim/cte.py +276 -0
  113. fibernet-1.24.0/fibernet/sim/damage.py +553 -0
  114. fibernet-1.24.0/fibernet/sim/diffusion.py +354 -0
  115. fibernet-1.24.0/fibernet/sim/dma.py +400 -0
  116. fibernet-1.24.0/fibernet/sim/dynamics.py +477 -0
  117. fibernet-1.24.0/fibernet/sim/electromagnetic.py +229 -0
  118. fibernet-1.24.0/fibernet/sim/fatigue.py +429 -0
  119. fibernet-1.24.0/fibernet/sim/fluid.py +533 -0
  120. fibernet-1.24.0/fibernet/sim/fracture.py +132 -0
  121. fibernet-1.24.0/fibernet/sim/fracture_mechanics.py +505 -0
  122. fibernet-1.24.0/fibernet/sim/incremental_fem.py +499 -0
  123. fibernet-1.24.0/fibernet/sim/mechanical.py +787 -0
  124. fibernet-1.24.0/fibernet/sim/molecular_dynamics.py +376 -0
  125. fibernet-1.24.0/fibernet/sim/multiscale.py +537 -0
  126. fibernet-1.24.0/fibernet/sim/nonlinear.py +924 -0
  127. fibernet-1.24.0/fibernet/sim/optimization.py +361 -0
  128. fibernet-1.24.0/fibernet/sim/periodic.py +377 -0
  129. fibernet-1.24.0/fibernet/sim/permeability.py +536 -0
  130. fibernet-1.24.0/fibernet/sim/rheology.py +471 -0
  131. fibernet-1.24.0/fibernet/sim/thermal.py +216 -0
  132. fibernet-1.24.0/fibernet/sim/uncertainty.py +346 -0
  133. fibernet-1.24.0/fibernet/sim/viscoelastic.py +328 -0
  134. fibernet-1.24.0/fibernet/trimesh_integration.py +387 -0
  135. fibernet-1.24.0/fibernet/units.py +323 -0
  136. fibernet-1.24.0/fibernet/utils/__init__.py +27 -0
  137. fibernet-1.24.0/fibernet/utils/batch.py +246 -0
  138. fibernet-1.24.0/fibernet/utils/config.py +614 -0
  139. fibernet-1.24.0/fibernet/utils/ensemble.py +441 -0
  140. fibernet-1.24.0/fibernet/utils/exceptions.py +123 -0
  141. fibernet-1.24.0/fibernet/utils/geometry.py +103 -0
  142. fibernet-1.24.0/fibernet/utils/io.py +78 -0
  143. fibernet-1.24.0/fibernet/utils/parametric.py +322 -0
  144. fibernet-1.24.0/fibernet/utils/units.py +204 -0
  145. fibernet-1.24.0/fibernet/utils/validation.py +477 -0
  146. fibernet-1.24.0/fibernet/version.py +11 -0
  147. fibernet-1.24.0/fibernet/visualization.py +438 -0
  148. fibernet-1.24.0/fibernet/viz/__init__.py +42 -0
  149. fibernet-1.24.0/fibernet/viz/advanced.py +346 -0
  150. fibernet-1.24.0/fibernet/viz/animate.py +74 -0
  151. fibernet-1.24.0/fibernet/viz/plot2d.py +188 -0
  152. fibernet-1.24.0/fibernet/viz/plotly_viz.py +341 -0
  153. fibernet-1.24.0/fibernet/viz/render3d.py +165 -0
  154. fibernet-1.24.0/fibernet/viz/visualization.py +527 -0
  155. fibernet-1.24.0/fibernet.egg-info/SOURCES.txt +225 -0
  156. fibernet-1.24.0/pyproject.toml +92 -0
  157. fibernet-1.24.0/requirements-dev.txt +11 -0
  158. fibernet-1.24.0/requirements.txt +2 -0
  159. fibernet-1.24.0/setup.cfg +4 -0
  160. fibernet-1.24.0/tests/conftest.py +35 -0
  161. fibernet-1.24.0/tests/test_accelerated.py +84 -0
  162. fibernet-1.24.0/tests/test_acoustic.py +74 -0
  163. fibernet-1.24.0/tests/test_advanced.py +174 -0
  164. fibernet-1.24.0/tests/test_advanced_statistics.py +222 -0
  165. fibernet-1.24.0/tests/test_api.py +138 -0
  166. fibernet-1.24.0/tests/test_benchmark.py +49 -0
  167. fibernet-1.24.0/tests/test_buckling_analysis.py +296 -0
  168. fibernet-1.24.0/tests/test_bundles.py +230 -0
  169. fibernet-1.24.0/tests/test_comparison.py +175 -0
  170. fibernet-1.24.0/tests/test_config.py +198 -0
  171. fibernet-1.24.0/tests/test_copy.py +61 -0
  172. fibernet-1.24.0/tests/test_core.py +145 -0
  173. fibernet-1.24.0/tests/test_coupled.py +93 -0
  174. fibernet-1.24.0/tests/test_creep.py +120 -0
  175. fibernet-1.24.0/tests/test_crosslinks.py +193 -0
  176. fibernet-1.24.0/tests/test_cte.py +198 -0
  177. fibernet-1.24.0/tests/test_curved.py +266 -0
  178. fibernet-1.24.0/tests/test_damage.py +111 -0
  179. fibernet-1.24.0/tests/test_diffusion.py +104 -0
  180. fibernet-1.24.0/tests/test_dma.py +124 -0
  181. fibernet-1.24.0/tests/test_doe.py +208 -0
  182. fibernet-1.24.0/tests/test_dynamics.py +247 -0
  183. fibernet-1.24.0/tests/test_edge_cases.py +245 -0
  184. fibernet-1.24.0/tests/test_effective_properties.py +99 -0
  185. fibernet-1.24.0/tests/test_electromagnetic.py +76 -0
  186. fibernet-1.24.0/tests/test_ensemble.py +221 -0
  187. fibernet-1.24.0/tests/test_fatigue.py +123 -0
  188. fibernet-1.24.0/tests/test_fea_export.py +224 -0
  189. fibernet-1.24.0/tests/test_fluid_acoustic.py +96 -0
  190. fibernet-1.24.0/tests/test_fractal.py +94 -0
  191. fibernet-1.24.0/tests/test_fracture_mechanics.py +99 -0
  192. fibernet-1.24.0/tests/test_generators.py +100 -0
  193. fibernet-1.24.0/tests/test_gnn.py +261 -0
  194. fibernet-1.24.0/tests/test_gradient.py +104 -0
  195. fibernet-1.24.0/tests/test_graph_neural_network.py +298 -0
  196. fibernet-1.24.0/tests/test_homogenization.py +134 -0
  197. fibernet-1.24.0/tests/test_incremental_fem.py +212 -0
  198. fibernet-1.24.0/tests/test_integration.py +259 -0
  199. fibernet-1.24.0/tests/test_integrations.py +167 -0
  200. fibernet-1.24.0/tests/test_io.py +181 -0
  201. fibernet-1.24.0/tests/test_laminates.py +279 -0
  202. fibernet-1.24.0/tests/test_materials.py +62 -0
  203. fibernet-1.24.0/tests/test_mesh_export.py +171 -0
  204. fibernet-1.24.0/tests/test_metamaterials.py +183 -0
  205. fibernet-1.24.0/tests/test_ml.py +57 -0
  206. fibernet-1.24.0/tests/test_molecular_dynamics.py +121 -0
  207. fibernet-1.24.0/tests/test_multiscale.py +123 -0
  208. fibernet-1.24.0/tests/test_nonlinear.py +187 -0
  209. fibernet-1.24.0/tests/test_optimization.py +192 -0
  210. fibernet-1.24.0/tests/test_pandas_io.py +199 -0
  211. fibernet-1.24.0/tests/test_parametric.py +88 -0
  212. fibernet-1.24.0/tests/test_pbc.py +87 -0
  213. fibernet-1.24.0/tests/test_percolation.py +76 -0
  214. fibernet-1.24.0/tests/test_periodic.py +139 -0
  215. fibernet-1.24.0/tests/test_permeability.py +272 -0
  216. fibernet-1.24.0/tests/test_pyvista.py +128 -0
  217. fibernet-1.24.0/tests/test_simulation.py +89 -0
  218. fibernet-1.24.0/tests/test_specialized.py +85 -0
  219. fibernet-1.24.0/tests/test_stress_strain.py +129 -0
  220. fibernet-1.24.0/tests/test_taichi_fem.py +276 -0
  221. fibernet-1.24.0/tests/test_topology.py +226 -0
  222. fibernet-1.24.0/tests/test_transforms.py +140 -0
  223. fibernet-1.24.0/tests/test_trimesh.py +191 -0
  224. fibernet-1.24.0/tests/test_uncertainty.py +212 -0
  225. fibernet-1.24.0/tests/test_units.py +170 -0
  226. fibernet-1.24.0/tests/test_validation.py +238 -0
  227. fibernet-1.24.0/tests/test_viscoelastic.py +125 -0
  228. fibernet-1.24.0/tests/test_visualization.py +140 -0
@@ -0,0 +1,239 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.18.0] - 2026-07-05
9
+
10
+ ### Added
11
+ - **Mesh export module** (`fibernet/io/mesh_export.py`)
12
+ - Export to STL (ASCII and binary)
13
+ - Export to Wavefront OBJ
14
+ - Export to Stanford PLY
15
+ - Cylindrical mesh generation for fibers
16
+ - Configurable polygon approximation (n_sides)
17
+
18
+ ### Tests
19
+ - 9 new tests in `tests/test_mesh_export.py`
20
+ - Total: 752 passing, 6 skipped
21
+
22
+ ## [1.17.0] - 2026-07-05
23
+
24
+ ### Added
25
+ - **Network comparison module** (`fibernet/analysis/comparison.py`)
26
+ - `NetworkFingerprint`: structural fingerprint computation
27
+ - `NetworkComparator`: pairwise distances, clustering, similarity search
28
+ - `compare_networks()`: compare multiple networks
29
+ - `network_similarity()`: pairwise similarity score
30
+ - Example 14: advanced structural analysis workflow
31
+
32
+ ### Tests
33
+ - 14 new tests in `tests/test_comparison.py`
34
+ - Total: 743 passing, 6 skipped
35
+
36
+ ## [1.16.0] - 2026-07-05
37
+
38
+ ### Added
39
+ - **Homogenization module** (`fibernet/analysis/homogenization.py`)
40
+ - `EffectiveElasticProperties`: E, nu, G computation (2D/3D)
41
+ - `EffectiveThermalProperties`: thermal conductivity, CTE
42
+ - `EffectiveElectricalProperties`: electrical conductivity
43
+ - `compute_effective_properties()`: comprehensive analysis
44
+
45
+ ### Tests
46
+ - 13 new tests in `tests/test_homogenization.py`
47
+ - Total: 729 passing, 6 skipped
48
+
49
+ ## [1.15.0] - 2026-07-05
50
+
51
+ ### Added
52
+ - **Spatial statistics module** (`fibernet/analysis/spatial.py`)
53
+ - `SpatialStatistics`: Ripley's K, pair correlation, nearest neighbor
54
+ - `OrientationAnalysis`: nematic order, orientation histograms
55
+ - `LengthAnalysis`: length distributions, statistics, fitting
56
+ - `ConnectivityAnalysis`: degree distribution, mean connectivity
57
+ - `AnisotropyAnalysis`: fabric tensor, anisotropy index
58
+ - `compute_spatial_statistics()`: comprehensive analysis
59
+
60
+ ### Tests
61
+ - 22 new tests in `tests/test_advanced_statistics.py`
62
+ - Total: 716 passing, 6 skipped
63
+
64
+ ## [1.14.0] - 2026-07-05
65
+
66
+ ### Added
67
+ - **Material database** (`fibernet/materials.py`)
68
+ - 29 pre-defined materials (polymers, metals, ceramics, biological, carbon)
69
+ - `get_material()`: quick material lookup
70
+ - `list_materials()`: list all available materials
71
+ - `compare_materials()`: material selection tool
72
+ - `m()`: shortcut for get_material
73
+ - **Unit conversion utilities** (`fibernet/units.py`)
74
+ - Length: m, mm, um, nm, cm, km, in, ft
75
+ - Force: N, kN, mN, µN, nN, lbf, dyne
76
+ - Pressure: Pa, kPa, MPa, GPa, TPa, bar, atm, psi, ksi
77
+ - Temperature: K, C, F, R
78
+ - Energy: J, kJ, mJ, cal, kcal, eV, BTU, kWh
79
+
80
+ ### Tests
81
+ - 33 new tests in `tests/test_materials.py` and `tests/test_units.py`
82
+ - Total: 694 passing, 6 skipped
83
+
84
+ ## [1.13.0] - 2026-07-05
85
+
86
+ ### Added
87
+ - **Fractal network generators** (`fibernet/gen/fractal.py`)
88
+ - Sierpinski triangle
89
+ - Koch curve
90
+ - Fractal tree
91
+ - Hilbert curve
92
+ - **Gradient network generators** (`fibernet/gen/gradient.py`)
93
+ - Density gradient (linear, exponential, sinusoidal)
94
+ - Property gradient (material properties varying spatially)
95
+ - Multi-zone networks (custom regions with different properties)
96
+ - Example 13: publication-ready research workflow
97
+
98
+ ### Tests
99
+ - 29 new tests in `tests/test_fractal.py` and `tests/test_gradient.py`
100
+ - Total: 687 passing, 6 skipped
101
+
102
+ ## [1.12.0] - 2026-07-04
103
+
104
+ ### Added
105
+ - Network topology analysis module
106
+ - Comprehensive topology metrics
107
+
108
+ ### Tests
109
+ - Total: 658 passing
110
+
111
+ ## [1.11.0] - 2026-07-04
112
+
113
+ ### Added
114
+ - Visualization module (2D/3D plotting)
115
+ - Design of Experiments (DOE) module
116
+ - Grid search
117
+ - Latin hypercube sampling
118
+ - Random sampling
119
+ - Sensitivity analysis
120
+
121
+ ### Tests
122
+ - Total: 635 passing
123
+
124
+ ## [1.10.0] - 2026-07-04
125
+
126
+ ### Added
127
+ - Fatigue analysis module
128
+ - Creep analysis module
129
+ - Diffusion/transport module
130
+
131
+ ### Tests
132
+ - Total: 607 passing
133
+
134
+ ## [1.9.0] - 2026-07-03
135
+
136
+ ### Added
137
+ - Benchmark suite for performance testing
138
+ - Enhanced multiscale testing
139
+
140
+ ### Tests
141
+ - Total: 585 passing
142
+
143
+ ## [1.8.0] - 2026-07-03
144
+
145
+ ### Added
146
+ - Electromagnetic analysis
147
+ - Molecular dynamics integration
148
+ - Open-source tool integrations
149
+ - Research case study examples
150
+
151
+ ### Tests
152
+ - Total: 575 passing
153
+
154
+ ## [1.7.0] - 2026-07-02
155
+
156
+ ### Added
157
+ - Graph neural network (GNN) module
158
+ - Permeability analysis
159
+ - Uncertainty quantification (UQ)
160
+ - Coefficient of thermal expansion (CTE)
161
+
162
+ ### Tests
163
+ - Total: 544 passing
164
+
165
+ ## [1.6.0] - 2026-07-02
166
+
167
+ ### Added
168
+ - Incremental FEM solver
169
+ - Buckling analysis module
170
+
171
+ ### Tests
172
+ - Total: 477 passing
173
+
174
+ ## [1.5.0] - 2026-07-01
175
+
176
+ ### Added
177
+ - Nonlinear mechanics module
178
+ - Damage mechanics
179
+ - Viscoelasticity
180
+
181
+ ### Tests
182
+ - Total: 448 passing
183
+
184
+ ## [1.4.0] - 2026-07-01
185
+
186
+ ### Added
187
+ - Periodic boundary conditions (PBC)
188
+ - Transforms module
189
+ - Advanced generators (chiral, woven, hierarchical)
190
+
191
+ ### Tests
192
+ - Total: 410 passing
193
+
194
+ ## [1.3.0] - 2026-06-30
195
+
196
+ ### Added
197
+ - Machine learning module
198
+ - Property prediction
199
+ - Feature engineering
200
+ - Percolation analysis
201
+ - Integration tests
202
+
203
+ ### Tests
204
+ - Total: 370 passing
205
+
206
+ ## [1.2.0] - 2026-06-30
207
+
208
+ ### Added
209
+ - Taichi-accelerated FEM solver
210
+ - I/O modules (VTK, LAMMPS, GMSH, PDB, XYZ)
211
+ - Pandas integration
212
+
213
+ ### Tests
214
+ - Total: 320 passing
215
+
216
+ ## [1.1.0] - 2026-06-29
217
+
218
+ ### Added
219
+ - Simulation modules (thermal, fracture, etc.)
220
+ - Core data structures
221
+ - Basic generators
222
+
223
+ ### Tests
224
+ - Total: 250 passing
225
+
226
+ ## [1.0.0] - 2026-06-28
227
+
228
+ ### Added
229
+ - Initial release
230
+ - Core fiber network data structures
231
+ - Basic random network generators
232
+ - Simple FEM solver
233
+ - Sphinx documentation framework
234
+ - GitHub Actions CI/CD
235
+ - pyproject.toml for pip installation
236
+
237
+ ### Tests
238
+ - Total: 180 passing
239
+
@@ -0,0 +1,131 @@
1
+ # Contributing to FiberNet
2
+
3
+ We love contributions! This document provides guidelines for contributing to FiberNet.
4
+
5
+ ## Code of Conduct
6
+
7
+ This project adheres to the [Contributor Covenant](https://www.contributor-covenant.org/) code of conduct.
8
+
9
+ ## How Can I Contribute?
10
+
11
+ ### Reporting Bugs
12
+
13
+ 1. **Check existing issues** first
14
+ 2. **Use the latest version**
15
+ 3. **Create a detailed report** with:
16
+ - Clear description
17
+ - Steps to reproduce
18
+ - Expected vs actual behavior
19
+ - Environment details (Python, OS, dependencies)
20
+ - Minimal reproducible example
21
+
22
+ ### Suggesting Features
23
+
24
+ 1. **Check existing issues and PRs**
25
+ 2. **Describe the use case** clearly
26
+ 3. **Propose an implementation** if possible
27
+
28
+ ### Submitting Code
29
+
30
+ 1. Fork the repository
31
+ 2. Create a feature branch: `git checkout -b feature/my-feature`
32
+ 3. Make your changes
33
+ 4. Add tests for new functionality
34
+ 5. Ensure all tests pass: `pytest tests/ -v`
35
+ 6. Format code: `black fibernet tests`
36
+ 7. Commit with clear messages
37
+ 8. Push and submit a Pull Request
38
+
39
+ ## Development Setup
40
+
41
+ ```bash
42
+ # Clone your fork
43
+ git clone https://github.com/YOUR_USERNAME/fibernet.git
44
+ cd fibernet
45
+
46
+ # Install in development mode
47
+ pip install -e ".[dev]"
48
+
49
+ # Run tests
50
+ pytest tests/ -v
51
+
52
+ # Build documentation
53
+ cd docs && make html
54
+ ```
55
+
56
+ ## Code Style
57
+
58
+ - Follow PEP 8
59
+ - Use `black` for formatting
60
+ - Use type hints where helpful
61
+ - Write docstrings in NumPy format
62
+ - Keep functions focused and small
63
+ - Add tests for new functionality
64
+
65
+ ## Testing
66
+
67
+ All new features must include tests:
68
+
69
+ ```bash
70
+ # Run all tests
71
+ pytest tests/ -v
72
+
73
+ # Run with coverage
74
+ pytest tests/ --cov=fibernet --cov-report=html
75
+
76
+ # Run specific test file
77
+ pytest tests/test_core.py -v
78
+ ```
79
+
80
+ ## Documentation
81
+
82
+ Update documentation when adding features:
83
+
84
+ - Add API reference to `docs/api/`
85
+ - Update tutorials in `tutorials/`
86
+ - Update `CHANGELOG.md`
87
+
88
+ Build docs locally:
89
+ ```bash
90
+ cd docs
91
+ make html
92
+ open _build/html/index.html
93
+ ```
94
+
95
+ ## Pull Request Process
96
+
97
+ 1. Update `CHANGELOG.md` with details of your change
98
+ 2. Update `README.md` if necessary
99
+ 3. Ensure CI passes (tests, docs build)
100
+ 4. Request review from maintainers
101
+ 5. Address review comments
102
+
103
+ ## Optional Dependencies
104
+
105
+ FiberNet is designed to work with only `numpy` and `scipy`. When adding features that require optional dependencies:
106
+
107
+ - Make imports conditional with try/except
108
+ - Provide clear error messages when dependencies are missing
109
+ - Document the optional dependency in docstrings
110
+
111
+ Example:
112
+ ```python
113
+ try:
114
+ import networkx as nx
115
+ HAS_NETWORKX = True
116
+ except ImportError:
117
+ HAS_NETWORKX = False
118
+ nx = None
119
+
120
+ def my_function():
121
+ if not HAS_NETWORKX:
122
+ raise ImportError("networkx required. Install with: pip install fibernet[graph]")
123
+ # ... use networkx
124
+ ```
125
+
126
+ ## Questions?
127
+
128
+ - Open a GitHub on GitHub
129
+ - Email the ML-BioMat lab
130
+
131
+ Thank you for contributing!
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 FiberNet Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,17 @@
1
+ include LICENSE
2
+ include README.md
3
+ include CHANGELOG.md
4
+ include CONTRIBUTING.md
5
+ include requirements.txt
6
+ include requirements-dev.txt
7
+ recursive-include fibernet *.py
8
+ recursive-include tests *.py
9
+ recursive-include examples *.py
10
+ recursive-include docs *.rst *.py
11
+ global-exclude __pycache__
12
+ global-exclude *.py[cod]
13
+ global-exclude .DS_Store
14
+ prune docs/_build
15
+ prune build
16
+ prune dist
17
+ prune *.egg-info