1<!doctype html> 2<!-- 3 Minimal Mistakes Jekyll Theme 4.26.2 by Michael Rose 4 Copyright 2013-2024 Michael Rose - mademistakes.com | @mmistakes 5 Free for personal and commercial use under the MIT license 6 https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE 7--> 8 9<html lang="en-US" class="no-js"> 10 <head> 11 <meta charset="utf-8"> 12 13<!-- begin _includes/seo.html --><title>3MAH â Mechanics of Heterogeneous & Architectured Materials â 3MAH</title> 14<meta name="description" content="Open-source scientific software for mechanics of materials and multiphysics. simcoon (constitutive modeling, micromechanics, UMAT), fedoo (nonlinear finite element analysis, periodic homogenization, PGD), and microgen (TPMS, lattices, polycrystals and microstructure meshing) in a single coherent workflow."> 15 16 17 <meta name="author" content="Yves Chemisky"> 18 19 20 21<meta property="og:type" content="website"> 22<meta property="og:locale" content="en_US"> 23<meta property="og:site_name" content="3MAH"> 24<meta property="og:title" content="3MAH â Mechanics of Heterogeneous & Architectured Materials"> 25<meta property="og:url" content="https://3mah.github.io/"> 26 27 28 <meta property="og:description" content="Open-source scientific software for mechanics of materials and multiphysics. simcoon (constitutive modeling, micromechanics, UMAT), fedoo (nonlinear finite element analysis, periodic homogenization, PGD), and microgen (TPMS, lattices, polycrystals and microstructure meshing) in a single coherent workflow."> 29 30 31 32 <meta property="og:image" content="https://3mah.github.io/assets/images/index/microgen/tpms_cylinder.png"> 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47<link rel="canonical" href="https://3mah.github.io/"> 48 49 50 51 52 53
53<script type="application/ld+json"> 54{ 55 "@context": "https://schema.org", 56 "@type": "Organization", 57 "url": "https://3mah.github.io/", 58 "logo": "https://3mah.github.io/assets/images/index/microgen/tpms_cylinder.png", 59 "sameAs": ["https://github.com/3MAH","https://3mah.github.io/simcoon-docs/","https://3mah.github.io/fedoo-docs/","https://3mah.github.io/microgen-docs/"] 60} 61</script>
61 62 63 64 65 66 67 68 69 70 71<!-- end _includes/seo.html --> 72 73 74 75 <link href="/feed.xml" type="application/atom+xml" rel="alternate" title="3MAH Feed"> 76<meta name="viewport" content="width=device-width, initial-scale=1.0"> 77
78<script type="text/javascript"> 79 document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js '; 80 81</script>
81 82 83<!-- For all browsers --> 84<link rel="stylesheet" href="/assets/css/main.css"> 85<link rel="preload" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@latest/css/all.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 86<noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@latest/css/all.min.css"></noscript> 87 88 89 90 <!-- start custom head snippets --> 91 92<!-- insert favicons. use http://realfavicongenerator.net/ --> 93 94<!-- Brand colours for section headings (simcoon / fedoo / microgen). 95 Each heading gets a translucent brand-coloured band behind it that 96 fades out at both ends, so the title sits inside its brand colour 97 without dominating the page. --> 98<style> 99 h1.brand-simcoon, h2.brand-simcoon, h3.brand-simcoon, 100 h1.brand-fedoo, h2.brand-fedoo, h3.brand-fedoo, 101 h1.brand-microgen,h2.brand-microgen,h3.brand-microgen { 102 padding: 0.45em 0.7em; 103 margin-top: 2em; 104 border-radius: 6px; 105 display: block; 106 } 107 h1.brand-simcoon, h2.brand-simcoon, h3.brand-simcoon { 108 color: #971C20; 109 background: linear-gradient(90deg, 110 rgba(151, 28, 32, 0) 0%, 111 rgba(151, 28, 32, 0.22) 18%, 112 rgba(151, 28, 32, 0.22) 82%, 113 rgba(151, 28, 32, 0) 100%); 114 } 115 h1.brand-fedoo, h2.brand-fedoo, h3.brand-fedoo { 116 color: #1f7a1a; 117 background: linear-gradient(90deg, 118 rgba(47, 161, 44, 0) 0%, 119 rgba(47, 161, 44, 0.22) 18%, 120 rgba(47, 161, 44, 0.22) 82%, 121 rgba(47, 161, 44, 0) 100%); 122 } 123 h1.brand-microgen, h2.brand-microgen, h3.brand-microgen { 124 color: #c45f1a; 125 background: linear-gradient(90deg, 126 rgba(238, 125, 48, 0) 0%, 127 rgba(238, 125, 48, 0.22) 18%, 128 rgba(238, 125, 48, 0.22) 82%, 129 rgba(238, 125, 48, 0) 100%); 130 } 131 132 /* Full-width showcase block â brand-coloured left rule, gradient 133 translucent background, image bleeds to the container edges. The 134 `--simcoon`, `--fedoo`, `--microgen` modifiers swap the brand colour. */ 135 .showcase { 136 --brand: #2fa12c; 137 --brand-dark: #1f7a1a; 138 --brand-r: 47; 139 --brand-g: 161; 140 --brand-b: 44; 141 margin: 2.5em 0 3em; 142 padding: 1em 1.4em 1.4em; 143 border-left: 3px solid var(--brand); 144 background: linear-gradient(90deg, 145 rgba(var(--brand-r), var(--brand-g), var(--brand-b), 0.10) 0%, 146 rgba(var(--brand-r), var(--brand-g), var(--brand-b), 0.04) 35%, 147 rgba(var(--brand-r), var(--brand-g), var(--brand-b), 0) 100%); 148 border-radius: 0 8px 8px 0; 149 } 150 .showcase--fedoo { --brand: #2fa12c; --brand-dark: #1f7a1a; 151 --brand-r: 47; --brand-g: 161; --brand-b: 44; } 152 .showcase--simcoon { --brand: #971C20; --brand-dark: #6e1316; 153 --brand-r: 151; --brand-g: 28; --brand-b: 32; } 154 .showcase--microgen { --brand: #ee7d30; --brand-dark: #c45f1a; 155 --brand-r: 238; --brand-g: 125; --brand-b: 48; } 156 .showcase__title { 157 margin: 0 0 0.35em; 158 color: var(--brand-dark); 159 font-weight: 700; 160 font-size: 1.4em; 161 } 162 .showcase__lede { 163 margin: 0 0 0.9em; 164 color: #2a2f3a; 165 font-size: 1.05em; 166 line-height: 1.5; 167 } 168 .showcase__img { 169 display: block; 170 width: 100%; 171 height: auto; 172 border-radius: 4px; 173 } 174 .showcase__grid { 175 display: grid; 176 grid-template-columns: 1fr 1fr; 177 gap: 1em; 178 align-items: start; 179 } 180 .showcase__grid--cols-3 { grid-template-columns: 1fr 1fr 1fr; } 181 .showcase__grid--cols-2x2 { 182 grid-template-columns: 1fr 1fr; 183 grid-auto-rows: 1fr; 184 } 185 .showcase__cell { margin: 0; } 186 .showcase__video { 187 display: block; 188 width: 100%; 189 height: auto; 190 border-radius: 4px; 191 } 192 .showcase__subcaption { 193 margin: 0.4em 0 0; 194 font-size: 0.92em; 195 color: #2a2f3a; 196 text-align: center; 197 } 198 .showcase__subcaption strong { color: var(--brand-dark); } 199 @media (max-width: 720px) { 200 .showcase__grid { grid-template-columns: 1fr; } 201 } 202 .showcase__caption { 203 margin: 0.7em 0 0; 204 font-size: 0.92em; 205 color: #5a5e6b; 206 } 207 .showcase__caption code { 208 background: rgba(var(--brand-r), var(--brand-g), var(--brand-b), 0.10); 209 padding: 0.05em 0.4em; 210 border-radius: 3px; 211 } 212</style> 213 214<!-- SEO: keywords (page-level overrides site-level) --><meta name="keywords" content="mechanics of materials, computational mechanics, constitutive modeling, micromechanics, finite element analysis, nonlinear FEM, periodic homogenization, microstructure generation, TPMS, gyroid, lattice structures, polycrystal, Voronoi tessellation, plasticity, hyperelasticity, shape memory alloys, composites, Mori-Tanaka, simcoon, fedoo, microgen, Python, C++, UMAT, Abaqus, open source"> 215 216<!-- SEO: structured data for the three open-source libraries -->
217<script type="application/ld+json"> 218{ 219 "@context": "https://schema.org", 220 "@graph": [ 221 { 222 "@type": "SoftwareApplication", 223 "name": "simcoon", 224 "applicationCategory": "EngineeringApplication", 225 "operatingSystem": "Linux, macOS, Windows", 226 "url": "https://3mah.github.io/simcoon-docs/", 227 "codeRepository": "https://github.com/3MAH/simcoon", 228 "programmingLanguage": ["C++", "Python"], 229 "description": "Constitutive modeling and micromechanics library: anisotropic elasticity, plasticity, viscoelasticity, hyperelasticity, phase transformation and mean-field homogenization." 230 }, 231 { 232 "@type": "SoftwareApplication", 233 "name": "fedoo", 234 "applicationCategory": "EngineeringApplication", 235 "operatingSystem": "Linux, macOS, Windows", 236 "url": "https://3mah.github.io/fedoo-docs/", 237 "codeRepository": "https://github.com/3MAH/fedoo", 238 "programmingLanguage": "Python", 239 "description": "Python finite element solver for nonlinear solid mechanics with periodic homogenization, beam, shell and solid elements, and PGD model reduction." 240 }, 241 { 242 "@type": "SoftwareApplication", 243 "name": "microgen", 244 "applicationCategory": "EngineeringApplication", 245 "operatingSystem": "Linux, macOS, Windows", 246 "url": "https://3mah.github.io/microgen-docs/", 247 "codeRepository": "https://github.com/3MAH/microgen", 248 "programmingLanguage": "Python", 249 "description": "Python library for microstructure generation and meshing: TPMS, lattices, polycrystals and hybrid architectures, exported as periodic finite element meshes." 250 } 251 ] 252} 253</script>
253 254 255<!-- MathJax Support -->
256<script type="text/javascript" async 257 src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"> 258</script>
258 259 260<!-- end custom head snippets --> 261 262 </head> 263 264 <body class="layout--splash"> 265 <nav class="skip-links"> 266 <ul> 267 <li><a href="#site-nav" class="screen-reader-shortcut">Skip to primary navigation</a></li> 268 <li><a href="#main" class="screen-reader-shortcut">Skip to content</a></li> 269 <li><a href="#footer" class="screen-reader-shortcut">Skip to footer</a></li> 270 </ul> 271</nav> 272 273 274 275<div class="masthead"> 276 <div class="masthead__inner-wrap"> 277 <div class="masthead__menu"> 278 <nav id="site-nav" class="greedy-nav"> 279 280 <a class="site-logo" href="/"><img src="/assets/images/logo_3mah/3mah_logo_vsmall.png" alt="3MAH"></a> 281 282 <a class="site-title" href="/"> 283 3MAH 284 285 </a> 286 <ul class="visible-links"><li class="masthead__menu-item"> 287 <a 288 href="https://3mah.github.io/simcoon-docs/" 289 290 291 >simcoon</a> 292 </li><li class="masthead__menu-item"> 293 <a 294 href="https://3mah.github.io/fedoo-docs/" 295 296 297 >fedoo</a> 298 </li><li class="masthead__menu-item"> 299 <a 300 href="https://3mah.github.io/microgen-docs/" 301 302 303 >microgen</a> 304 </li><li class="masthead__menu-item"> 305 <a 306 href="/team/" 307 308 309 >Team</a> 310 </li><li class="masthead__menu-item"> 311 <a 312 href="/gallery/" 313 314 315 >Gallery</a> 316 </li></ul> 317 318 <button class="greedy-nav__toggle hidden" type="button"> 319 <span class="visually-hidden">Toggle Menu</span> 320 <div class="navicon"></div> 321 </button> 322 <ul class="hidden-links hidden"></ul> 323 </nav> 324 </div> 325 </div> 326</div> 327 328 329 <div class="initial-content"> 330 331 332 333 334 335 336 337 338 339<div class="page__hero--overlay" 340 style="background-color: #0a1428; background-image: linear-gradient(rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0.35)), url('/assets/images/index/microgen/tpms_cylinder.png');" 341> 342 343 <div class="wrapper"> 344 <h1 id="page-title" class="page__title" itemprop="headline"> 345 346 3MAH â Mechanics of Heterogeneous & Architectured Materials 347 348 349 </h1> 350 351 <p class="page__lead">Open-source scientific tools for the mechanics of materials and multiphysics: constitutive modeling, finite element analysis, and microstructure generation, in a single coherent workflow. 352</p> 353 354 355 356 357 358 </div> 359 360 361 <span class="page__hero-caption">Gyroid TPMS rendered with microgen 362</span> 363 364</div> 365 366 367 368<div id="main" role="main"> 369 <article class="splash" itemscope itemtype="https://schema.org/CreativeWork"> 370 <meta itemprop="headline" content="3MAH â Mechanics of Heterogeneous & Architectured Materials"> 371 <meta itemprop="description" content="Open-source scientific tools for the mechanics of materials and multiphysics: constitutive modeling, finite element analysis, and microstructure generation, in a single coherent workflow."> 372 373 374 375 <section class="page__content" itemprop="text"> 376 377<div class="feature__wrapper"> 378 379 380 381 382 383 384 385 <div class="feature__item--center"> 386 <div class="archive__item"> 387 388 389 <div class="archive__item-body"> 390 391 392 393 <div class="archive__item-excerpt"> 394 <p>The <strong>3MAH</strong> initiative brings together three complementary, interoperable open-source libraries: <strong>simcoon</strong> for constitutive modeling and micromechanics, <strong>fedoo</strong> for nonlinear finite element analysis, and <strong>microgen</strong> for microstructure generation and meshing. Together, they provide a complete pipeline from geometry to simulation for research in mechanics of heterogeneous and architectured materials.</p> 395 396 </div> 397 398 399 400 </div> 401 </div> 402 </div> 403 404 405</div> 406 407<h2 class="brand-simcoon" id="simcoon--constitutive-modeling--micromechanics">simcoon â Constitutive modeling & micromechanics</h2> 408 409<div class="feature__wrapper"> 410 411 412 413 414 415 416 417 <div class="feature__item"> 418 <div class="archive__item"> 419 420 <div class="archive__item-teaser"> 421 422 423 <img src="https://3mah.github.io/assets/images/logo_simcoon/simcoon_logo_text.png" alt="simcoon" /> 424 425 </div> 426 427 428 <div class="archive__item-body"> 429 430 <h2 class="archive__item-title">simcoon</h2> 431 432 433 434 <div class="archive__item-excerpt"> 435 <p><strong>Constitutive modeling and micromechanics</strong> in C++ with Python bindings. Anisotropic elasticity, plasticity (isotropic, kinematic, Chaboche), viscoelasticity, hyperelasticity and phase transformation, with finite-strain support.</p> 436 437 </div> 438 439 440 441 <p><a href="https://3mah.github.io/simcoon-docs/" class="btn btn--primary">simcoon docs</a></p> 442 443 </div> 444 </div> 445 </div> 446 447 448 449 450 451 452 <div class="feature__item"> 453 <div class="archive__item"> 454 455 <div class="archive__item-teaser"> 456 457 458 <img src="https://3mah.github.io/assets/images/index/simcoon/simcoon_homog_mori_tanaka.png" alt="Mean-field homogenization" /> 459 460 </div> 461 462 463 <div class="archive__item-body"> 464 465 <h2 class="archive__item-title">Mean-field homogenization</h2> 466 467 468 469 <div class="archive__item-excerpt"> 470 <p>Effective properties of composites with <strong>Mori-Tanaka</strong> and self-consistent schemes, framed by Voigt and Reuss bounds and validated against experimental data.</p> 471 472 </div> 473 474 475 476 <p><a href="https://3mah.github.io/simcoon-docs/examples/heterogeneous/homogenization.html" class="btn btn--primary">See example</a></p> 477 478 </div> 479 </div> 480 </div> 481 482 483 484 485 486 487 <div class="feature__item"> 488 <div class="archive__item"> 489 490 <div class="archive__item-teaser"> 491 492 493 <img src="https://3mah.github.io/assets/images/index/simcoon/simcoon_directional_stiffness.png" alt="Directional stiffness" /> 494 495 </div> 496 497 498 <div class="archive__item-body"> 499 500 <h2 class="archive__item-title">Analysis & identification</h2> 501 502 503 504 <div class="archive__item-excerpt"> 505 <p>Analyse <strong>directional stiffness</strong>, yield surfaces and cyclic response, then identify model parameters with hybrid genetic-gradient algorithms.</p> 506 507 </div> 508 509 510 511 <p><a href="https://3mah.github.io/simcoon-docs/examples/analysis/directional_stiffness.html" class="btn btn--primary">See example</a></p> 512 513 </div> 514 </div> 515 </div> 516 517 518</div> 519 520<figure class="showcase showcase--simcoon"> 521 <p class="showcase__title">Parameter identification from cyclic experiments</p> 522 <p class="showcase__lede"> 523 Identify <strong>seven Chaboche parameters</strong> â initial yield Ï_y, 524 Voce isotropic hardening (Q, b) and two non-linear Armstrong-Frederick 525 backstresses (Câ, Dâ, Câ, Dâ) â from <strong>three cyclic uniaxial 526 tests</strong> at increasing strain amplitudes. simcoon's 527 <strong>EPCHA</strong> UMAT is the forward model, driven through 528 <code>sim.solver</code>; the new <code>simcoon.identify</code> module 529 wraps SciPy's differential evolution with a key-based file-templating 530 workflow that generalises to any optimiser or external simulator. 531 </p> 532 <video class="showcase__video" src="/assets/images/index/simcoon/simcoon_chaboche_identification.mp4" poster="/assets/images/index/simcoon/simcoon_chaboche_identification.png" autoplay="" loop="" muted="" playsinline="" preload="metadata" aria-label="Differential-evolution iterations converging onto three experimental cyclic stress-strain curves"></video> 533 <p class="showcase__caption"> 534 EPCHA UMAT · E = 140 GPa, ν = 0.3 (fixed) · 7 parameters identified ·
535 cost = NMSE-per-response, balanced across the three tests · optimiser: 536 <code>scipy.optimize.differential_evolution</code> (popsize 15, maxiter 80, 537 seed 42) · final cost â 8 à 10â»Â³. 538 </p> 539</figure> 540 541<h2 class="brand-fedoo" id="fedoo--nonlinear-finite-element-analysis">fedoo â Nonlinear finite element analysis</h2> 542 543<div class="feature__wrapper"> 544 545 546 547 548 549 550 551 <div class="feature__item"> 552 <div class="archive__item"> 553 554 <div class="archive__item-teaser"> 555 556 557 <img src="https://3mah.github.io/assets/images/logo_fedoo/fedoo_logo.png" alt="fedoo" /> 558 559 </div> 560 561 562 <div class="archive__item-body"> 563 564 <h2 class="archive__item-title">fedoo</h2> 565 566 567 568 <div class="archive__item-excerpt"> 569 <p>A <strong>Python finite element solver</strong> for nonlinear mechanics, with an emphasis on geometric and material nonlinearity, model reduction (PGD) and multiscale homogenization.</p> 570 571 </div> 572 573 574 575 <p><a href="https://3mah.github.io/fedoo-docs/" class="btn btn--primary">fedoo docs</a></p> 576 577 </div> 578 </div> 579 </div> 580 581 582 583 584 585 586 <div class="feature__item"> 587 <div class="archive__item"> 588 589 <div class="archive__item-teaser"> 590 591 592 <img src="https://3mah.github.io/assets/images/index/fedoo/fedoo_periodic_homog.png" alt="Periodic homogenization" /> 593 594 </div> 595 596 597 <div class="archive__item-body"> 598 599 <h2 class="archive__item-title">Periodic homogenization</h2> 600 601 602 603 <div class="archive__item-excerpt"> 604 <p>Apply <strong>periodic boundary conditions</strong> on representative volume elements to extract full anisotropic effective stiffness and nonlinear macroscopic response.</p> 605 606 </div> 607 608 609 610 <p><a href="https://3mah.github.io/fedoo-docs/examples/03-advanced/3D_periodic_BC_off_axis.html" class="btn btn--primary">See example</a></p> 611 612 </div> 613 </div> 614 </div> 615 616 617 618 619 620 621 <div class="feature__item"> 622 <div class="archive__item"> 623 624 <div class="archive__item-teaser"> 625 626 627 <img src="https://3mah.github.io/assets/images/index/fedoo/fedoo_beam_lattice.png" alt="Beam and shell elements" /> 628 629 </div> 630 631 632 <div class="archive__item-body"> 633 634 <h2 class="archive__item-title">Beam, shell and solid elements</h2> 635 636 637 638 <div class="archive__item-excerpt"> 639 <p>From 2D plates with holes to 3D <strong>beam lattices</strong> and pressurised shells: a unified API for 1D, 2D and 3D structural analysis.</p> 640 641 </div> 642 643 644 645 <p><a href="https://3mah.github.io/fedoo-docs/" class="btn btn--primary">Read more</a></p> 646 647 </div> 648 </div> 649 </div> 650 651 652</div> 653 654<figure class="showcase showcase--fedoo"> 655 <p class="showcase__title">Nonlinear and finite-strain mechanics</p> 656 <p class="showcase__lede"> 657 Plastic buckling of a thin tube under axial compression â 2D <strong>axisymmetric</strong> 658 model with <strong>updated-Lagrangian</strong> finite strain, 659 <strong>self-contact</strong>, and a simcoon <strong>EPICP</strong> 660 elasto-plastic UMAT. Line-search Newton with adaptive stiffness drives 661 the tube from undeformed to fully folded in a single nonlinear solve. 662 </p> 663 <div class="showcase__grid showcase__grid--cols-3"> 664 <figure class="showcase__cell"> 665 <img class="showcase__img" src="/assets/images/index/fedoo/fedoo_tube_initial.png" alt="Undeformed tube â initial configuration" /> 666 <p class="showcase__subcaption"><strong>Initial</strong></p> 667 </figure> 668 <figure class="showcase__cell"> 669 <video class="showcase__video" src="/assets/images/index/fedoo/fedoo_tube_evolution.mp4" poster="/assets/images/index/fedoo/fedoo_tube_initial.png" autoplay="" loop="" muted="" playsinline="" preload="metadata" aria-label="Tube buckling evolution from undeformed to fully folded under axial compression"></video> 670 <p class="showcase__subcaption"><strong>Evolution</strong></p> 671 </figure> 672 <figure class="showcase__cell"> 673 <a href="https://3mah.github.io/fedoo-docs/examples/03-advanced/tube_compression.html"> 674 <img class="showcase__img" src="/assets/images/index/fedoo/fedoo_tube_final.png" alt="Fully folded tube â final accordion-like configuration with equivalent plastic strain field" /> 675 </a> 676 <p class="showcase__subcaption"><strong>Final</strong></p> 677 </figure> 678 </div> 679 <p class="showcase__caption"> 680 E = 200 GPa · Ï_y = 300 MPa · power-law isotropic hardening 681 <code>Ï = Ï_y + k·p<sup>m</sup></code> (k = 1000, m = 0.3) · 682 240 axial elements · 3D revolution from the axisymmetric solution · 683 field shown: equivalent plastic strain p. 684 </p> 685</figure> 686 687<div class="feature__wrapper"> 688 689 690 691 692 693 694 695 <div class="feature__item--left"> 696 <div class="archive__item"> 697 698 <div class="archive__item-teaser"> 699 700 701 702 703 <video src="/assets/images/index/fedoo/fedoo_ipc_indentation.mp4" poster="/assets/images/index/fedoo/fedoo_ipc_indentation.png" autoplay="" loop="" muted="" playsinline="" preload="metadata" style="width:100%;height:auto;display:block;" aria-label="Stiff disk progressively indenting a soft plate, von Mises stress field"></video> 704 705 </div> 706 707 708 <div class="archive__item-body"> 709 710 <h2 class="archive__item-title">Contact with IPC</h2> 711 712 713 714 <div class="archive__item-excerpt"> 715 <p>Robust <strong>incremental potential contact</strong> (IPC) via the <code class="language-plaintext highlighter-rouge">ipctk</code> backend â barrier-method, intersection-free, <strong>frictional or frictionless</strong> contact for indentation, self-contact and lattice compression. The disk-on-plate example here is validated against the Hertzian half-space solution.</p> 716 717 </div> 718 719 720 721 <p><a href="https://3mah.github.io/fedoo-docs/" class="btn btn--primary">Read more</a></p> 722 723 </div> 724 </div> 725 </div> 726 727 728</div> 729 730<h2 class="brand-microgen" id="microgen--microstructure-generation--meshing">microgen â Microstructure generation & meshing</h2> 731 732<div class="feature__wrapper"> 733 734 735 736 737 738 739 740 <div class="feature__item"> 741 <div class="archive__item"> 742 743 <div class="archive__item-teaser"> 744 745 746 <img src="https://3mah.github.io/assets/images/logo_microgen/microgen_logo.png" alt="microgen" /> 747 748 </div> 749 750 751 <div class="archive__item-body"> 752 753 <h2 class="archive__item-title">microgen</h2> 754 755 756 757 <div class="archive__item-excerpt"> 758 <p>A <strong>Python library for microstructure generation and meshing</strong>: TPMS, lattices, polycrystals and hybrid architectures, exported to CAD or directly to periodic FE meshes.</p> 759 760 </div> 761 762 763 764 <p><a href="https://3mah.github.io/microgen-docs/" class="btn btn--primary">microgen docs</a></p> 765 766 </div> 767 </div> 768 </div> 769 770 771 772 773 774 775 <div class="feature__item"> 776 <div class="archive__item"> 777 778 <div class="archive__item-teaser"> 779 780 781 <img src="https://3mah.github.io/assets/images/index/microgen/gyroid_graded.png" alt="Graded TPMS" /> 782 783 </div> 784 785 786 <div class="archive__item-body"> 787 788 <h2 class="archive__item-title">Graded TPMS & lattices</h2> 789 790 791 792 <div class="archive__item-excerpt"> 793 <p>Generate <strong>gyroids, Schwarz, Schoen</strong> and other triply periodic minimal surfaces, with spatially graded thickness and mapping onto arbitrary CAD bodies.</p> 794 795 </div> 796 797 798 799 <p><a href="https://3mah.github.io/microgen-docs/" class="btn btn--primary">See example</a></p> 800 801 </div> 802 </div> 803 </div> 804 805 806 807 808 809 810 <div class="feature__item"> 811 <div class="archive__item"> 812 813 <div class="archive__item-teaser"> 814 815 816 817 818 <video src="/assets/images/index/microgen/examples/voronoi_polycrystal.mp4" poster="/assets/images/index/microgen/examples/voronoi_polycrystal.png" autoplay="" loop="" muted="" playsinline="" preload="metadata" style="width:100%;height:auto;display:block;" aria-label="Voronoi polycrystal grains assembling one by one"></video> 819 820 </div> 821 822 823 <div class="archive__item-body"> 824 825 <h2 class="archive__item-title">Polycrystals & architectured cells</h2> 826 827 828 829 <div class="archive__item-excerpt"> 830 <p><strong>Voronoi</strong> polycrystals, octet-truss lattices, honeycombs and hybrid architectures, ready for periodic homogenization in fedoo or Abaqus.</p> 831 832 </div> 833 834 835 836 <p><a href="https://3mah.github.io/microgen-docs/" class="btn btn--primary">Read more</a></p> 837 838 </div> 839 </div> 840 </div> 841 842 843</div> 844 845<figure class="showcase showcase--microgen"> 846 <p class="showcase__title">Graded and periodic meshes</p> 847 <p class="showcase__lede"> 848 microgen drives <strong>Gmsh</strong> and <strong>MMG</strong> from 849 Python to deliver two complementary mesh styles for architectured 850 materials: <strong>graded</strong> structures with spatially varying 851 thickness, and seamlessly <strong>periodic</strong> unit cells ready 852 for periodic-homogenisation BCs in fedoo or Abaqus.
853 </p> 854 <div class="showcase__grid"> 855 <figure class="showcase__cell"> 856 <a href="https://3mah.github.io/microgen-docs/"> 857 <img class="showcase__img" src="/assets/images/index/microgen/microgen_hero.png" alt="Spatially graded gyroid with the conforming triangular mesh visible across the gradient" /> 858 </a> 859 <p class="showcase__subcaption"> 860 <strong>Graded</strong> â tanh-graded gyroid, thickness varying along x. 861 </p> 862 </figure> 863 <figure class="showcase__cell"> 864 <a href="https://3mah.github.io/microgen-docs/"> 865 <img class="showcase__img" src="/assets/images/index/microgen/microgen_periodic.png" alt="A single TPMS unit cell tiled three by two showing seamless periodicity across cell boundaries" /> 866 </a> 867 <p class="showcase__subcaption"> 868 <strong>Periodic</strong> â unit cell tiled 3 à 2, no seam visible. 869 </p> 870 </figure> 871 </div> 872 <p class="showcase__caption"> 873 Open CASCADE / CadQuery for geometry · Gmsh for the conforming 874 triangulation · MMG for adaptive remeshing · exported as <code>.vtk</code> 875 /<code>.msh</code> for fedoo, Abaqus and others. 876 </p> 877</figure> 878 879<div class="feature__wrapper"> 880 881 882 883 884 885 886 887 <div class="feature__item--right"> 888 <div class="archive__item"> 889 890 <div class="archive__item-teaser"> 891 892 893 894 895 <video src="/assets/images/index/microgen/microgen_morph.mp4" autoplay="" loop="" muted="" playsinline="" preload="metadata" style="width:100%;height:auto;display:block;" aria-label="Continuous morphing through eleven TPMS surface families"></video> 896 897 </div> 898 899 900 <div class="archive__item-body"> 901 902 <h2 class="archive__item-title">Continuous morphing between TPMS families</h2> 903 904 905 906 <div class="archive__item-excerpt"> 907 <p>Blend any two TPMS surface functions with a tanh weight to walk continuously through families: <strong>gyroid â Schwarz P â Schwarz D â Neovius â Schoen IWP â Schoen FRD â Fischer-Koch S â PMY â honeycomb â Lidinoid â split P â gyroid</strong>. The animated transition exposes the underlying surface-function arithmetic of microgen.</p> 908 909 </div> 910 911 912 913 <p><a href="https://3mah.github.io/microgen-docs/" class="btn btn--primary">Read more</a></p> 914 915 </div> 916 </div> 917 </div> 918 919 920</div> 921 922<h2 id="from-microstructure-to-simulation">From microstructure to simulation</h2> 923 924<p>The same Kelvin (truncated-octahedron) unit cell is generated and meshed with <strong>microgen</strong>, exported as a conforming periodic mesh, then loaded directly into <strong>fedoo</strong> to run a periodic homogenization with <strong>simcoon</strong> constitutive models. One workflow, three libraries â geometry, mesh and simulation kept in lock-step.</p> 925 926<figure class="half"> 927 <a href="/microgen/"><img src="/assets/images/index/fedoo/fedoo_kelvin_mesh.png" alt="Kelvin RVE - conforming periodic mesh from microgen" /></a> 928 <a href="/fedoo/"><img src="/assets/images/index/fedoo/fedoo_periodic_homog.png" alt="Kelvin RVE - periodic homogenization with fedoo" /></a> 929 <figcaption>Same Kelvin unit cell â left: periodic conforming mesh from microgen; right: periodic homogenization (shear E<sub>YZ</sub>, Ï<sub>YZ</sub> field) in fedoo.</figcaption> 930</figure> 931 932<div class="feature__wrapper"> 933 934 935 936 937 938 939 940 <div class="feature__item"> 941 <div class="archive__item"> 942 943 944 <div class="archive__item-body"> 945 946 <h2 class="archive__item-title">Team</h2> 947 948 949 950 <div class="archive__item-excerpt"> 951 <p>Meet the researchers and labs behind 3MAH.</p> 952 953 </div> 954 955 956 957 <p><a href="https://3mah.github.io/team/" class="btn btn--inverse">About the team</a></p> 958 959 </div> 960 </div> 961 </div> 962 963 964 965 966 967 968 <div class="feature__item"> 969 <div class="archive__item"> 970 971 972 <div class="archive__item-body"> 973 974 <h2 class="archive__item-title">Gallery</h2> 975 976 977 978 <div class="archive__item-excerpt"> 979 <p>Explore simulations and renderings produced with the 3MAH stack.</p> 980 981 </div> 982 983 984 985 <p><a href="https://3mah.github.io/gallery/" class="btn btn--inverse">Open gallery</a></p> 986 987 </div> 988 </div> 989 </div> 990 991 992</div> 993 994 995 </section> 996 </article> 997</div> 998 999 1000 </div> 1001 1002 1003 1004 <div id="footer" class="page__footer"> 1005 <footer> 1006 <!-- start custom footer snippets --> 1007 1008<!-- end custom footer snippets --> 1009 1010 <div class="page__footer-follow"> 1011 <ul class="social-icons"> 1012 1013 <li><strong>Follow:</strong></li> 1014 1015 1016 1017 1018 1019 <li><a href="/feed.xml"><i class="fas fa-fw fa-rss-square" aria-hidden="true"></i> Feed</a></li> 1020 1021 </ul> 1022</div> 1023 1024<div class="page__footer-copyright">© 2026 <a href="https://3MAH.github.io">3MAH</a>. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> &
1024 <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div> 1025 1026 </footer> 1027 </div> 1028 1029 1030
1030<script src="/assets/js/main.min.js"></script>
1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 </body> 1041</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.