Repository files navigation

PolycrystalDiffusion

Pixi Badge

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials - powered by MSUtils and FANS

Table of contents

Features

We provide an interactive easy-to-use interface to directly configure parameters, run simulations and visualize results. This includes:

  • generating periodic Voronoi tessellations and corresponding voxel-based microstructures with prescribed grain boundary thickness
  • defining diffusion coefficients for bulk and transversely isotropic grain boundaries either directly or via Arrhenius parameters and temperature
  • computing full-field solutions (concentration, gradient and flux fields) as well as effective diffusivities
  • visualizing full-field solutions for rapid insights into diffusion behavior

Note that in-app visualization is limited to low resolution results. For high-resolution results and for advanced investigations we recommend viewing the results in ParaView using the generated xdmf-file.

More detailed information is provided below.

Getting started

Clone this repository to your system:

git clone https://github.com/DataAnalyticsEngineering/PolycrystalDiffusion
cd PolycrystalDiffusion

We recommend using pixi to effortlessly set up an isolated environment with all required dependencies:

# Install pixi if not done already
curl -fsSL https://pixi.sh/install.sh | sh
# Create the environment with all dependencies
pixi install

In general you can open a pixi environment shell via pixi shell.

Start the interactive interface to configure, run and visualize your simulations:

pixi run start

This will execute marimo run examples/run.py in the background and should open a browser tab.

Usage

Interactive interface

The provided interface was built using marimo. In addition to the app-like option described above the interface can also be launched in an editable notebook-like mode:

pixi run edit # executes: marimo edit examples/run.py

Beyond the interface

In addition to the interactive interface an overview of all required commands and scripts is provided below such that one can easily integrate it into existing frameworks and workflows.

Microstructure generation:

To generate a periodic Voronoi tessellation and voxel-based microstructure representation a python script is provided here. Number of grains, domain size and seed sampling technique as well as resolution and interface thickness can be set therein. For more information we refer directly to MSUtils.

Simulation:

All parameters (simulation as well as solver specific) are set in an input file. An example template is provided here. One can compute:

  • concentration fluctuation field (displacement_fluctuation)
  • concentration field (displacement)
  • gradient field (strain)
  • flux field (stress)
  • effective diffusivity tensor (homogenized_tangent) - here the loading can be set to arbitrary values

A detailed documentation can also be found in the FANS repository.

A FANS simulation can be launched by passing the number of processes (16) together with the paths to input file (.json) and results file (.h5):

mpiexec -n 16 FANS path/to/input.json path/to/results.h5

Visualization:

To view all full-field solutions from a results file in ParaView a xdmf-file can be generated by running:

pixi run h52xdmf path/to/results.h5

Acknowledgements

Funded by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy - EXC 2075 – 390740016. We acknowledge the support of the Stuttgart Center for Simulation Science (SimTech).

Contributors

About

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

PolycrystalDiffusion

Pixi Badge

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials - powered by MSUtils and FANS

Table of contents

Features

We provide an interactive easy-to-use interface to directly configure parameters, run simulations and visualize results. This includes:

  • generating periodic Voronoi tessellations and corresponding voxel-based microstructures with prescribed grain boundary thickness
  • defining diffusion coefficients for bulk and transversely isotropic grain boundaries either directly or via Arrhenius parameters and temperature
  • computing full-field solutions (concentration, gradient and flux fields) as well as effective diffusivities
  • visualizing full-field solutions for rapid insights into diffusion behavior

Note that in-app visualization is limited to low resolution results. For high-resolution results and for advanced investigations we recommend viewing the results in ParaView using the generated xdmf-file.

More detailed information is provided below.

Getting started

Clone this repository to your system:

git clone https://github.com/DataAnalyticsEngineering/PolycrystalDiffusion
cd PolycrystalDiffusion

We recommend using pixi to effortlessly set up an isolated environment with all required dependencies:

# Install pixi if not done already
curl -fsSL https://pixi.sh/install.sh | sh
# Create the environment with all dependencies
pixi install

In general you can open a pixi environment shell via pixi shell.

Start the interactive interface to configure, run and visualize your simulations:

pixi run start

This will execute marimo run examples/run.py in the background and should open a browser tab.

Usage

Interactive interface

The provided interface was built using marimo. In addition to the app-like option described above the interface can also be launched in an editable notebook-like mode:

pixi run edit # executes: marimo edit examples/run.py

Beyond the interface

In addition to the interactive interface an overview of all required commands and scripts is provided below such that one can easily integrate it into existing frameworks and workflows.

Microstructure generation:

To generate a periodic Voronoi tessellation and voxel-based microstructure representation a python script is provided here. Number of grains, domain size and seed sampling technique as well as resolution and interface thickness can be set therein. For more information we refer directly to MSUtils.

Simulation:

All parameters (simulation as well as solver specific) are set in an input file. An example template is provided here. One can compute:

  • concentration fluctuation field (displacement_fluctuation)
  • concentration field (displacement)
  • gradient field (strain)
  • flux field (stress)
  • effective diffusivity tensor (homogenized_tangent) - here the loading can be set to arbitrary values

A detailed documentation can also be found in the FANS repository.

A FANS simulation can be launched by passing the number of processes (16) together with the paths to input file (.json) and results file (.h5):

mpiexec -n 16 FANS path/to/input.json path/to/results.h5

Visualization:

To view all full-field solutions from a results file in ParaView a xdmf-file can be generated by running:

pixi run h52xdmf path/to/results.h5

Acknowledgements

Funded by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy - EXC 2075 – 390740016. We acknowledge the support of the Stuttgart Center for Simulation Science (SimTech).

Contributors

About

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PolycrystalDiffusion

Pixi Badge

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials - powered by MSUtils and FANS

Table of contents

Features

We provide an interactive easy-to-use interface to directly configure parameters, run simulations and visualize results. This includes:

  • generating periodic Voronoi tessellations and corresponding voxel-based microstructures with prescribed grain boundary thickness
  • defining diffusion coefficients for bulk and transversely isotropic grain boundaries either directly or via Arrhenius parameters and temperature
  • computing full-field solutions (concentration, gradient and flux fields) as well as effective diffusivities
  • visualizing full-field solutions for rapid insights into diffusion behavior

Note that in-app visualization is limited to low resolution results. For high-resolution results and for advanced investigations we recommend viewing the results in ParaView using the generated xdmf-file.

More detailed information is provided below.

Getting started

Clone this repository to your system:

git clone https://github.com/DataAnalyticsEngineering/PolycrystalDiffusion
cd PolycrystalDiffusion

We recommend using pixi to effortlessly set up an isolated environment with all required dependencies:

# Install pixi if not done already
curl -fsSL https://pixi.sh/install.sh | sh
# Create the environment with all dependencies
pixi install

In general you can open a pixi environment shell via pixi shell.

Start the interactive interface to configure, run and visualize your simulations:

pixi run start

This will execute marimo run examples/run.py in the background and should open a browser tab.

Usage

Interactive interface

The provided interface was built using marimo. In addition to the app-like option described above the interface can also be launched in an editable notebook-like mode:

pixi run edit # executes: marimo edit examples/run.py

Beyond the interface

In addition to the interactive interface an overview of all required commands and scripts is provided below such that one can easily integrate it into existing frameworks and workflows.

Microstructure generation:

To generate a periodic Voronoi tessellation and voxel-based microstructure representation a python script is provided here. Number of grains, domain size and seed sampling technique as well as resolution and interface thickness can be set therein. For more information we refer directly to MSUtils.

Simulation:

All parameters (simulation as well as solver specific) are set in an input file. An example template is provided here. One can compute:

  • concentration fluctuation field (displacement_fluctuation)
  • concentration field (displacement)
  • gradient field (strain)
  • flux field (stress)
  • effective diffusivity tensor (homogenized_tangent) - here the loading can be set to arbitrary values

A detailed documentation can also be found in the FANS repository.

A FANS simulation can be launched by passing the number of processes (16) together with the paths to input file (.json) and results file (.h5):

mpiexec -n 16 FANS path/to/input.json path/to/results.h5

Visualization:

To view all full-field solutions from a results file in ParaView a xdmf-file can be generated by running:

pixi run h52xdmf path/to/results.h5

Acknowledgements

Funded by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy - EXC 2075 – 390740016. We acknowledge the support of the Stuttgart Center for Simulation Science (SimTech).

Contributors

About

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PolycrystalDiffusion

Pixi Badge

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials - powered by MSUtils and FANS

Table of contents

Features

We provide an interactive easy-to-use interface to directly configure parameters, run simulations and visualize results. This includes:

  • generating periodic Voronoi tessellations and corresponding voxel-based microstructures with prescribed grain boundary thickness
  • defining diffusion coefficients for bulk and transversely isotropic grain boundaries either directly or via Arrhenius parameters and temperature
  • computing full-field solutions (concentration, gradient and flux fields) as well as effective diffusivities
  • visualizing full-field solutions for rapid insights into diffusion behavior

Note that in-app visualization is limited to low resolution results. For high-resolution results and for advanced investigations we recommend viewing the results in ParaView using the generated xdmf-file.

More detailed information is provided below.

Getting started

Clone this repository to your system:

git clone https://github.com/DataAnalyticsEngineering/PolycrystalDiffusion
cd PolycrystalDiffusion

We recommend using pixi to effortlessly set up an isolated environment with all required dependencies:

# Install pixi if not done already
curl -fsSL https://pixi.sh/install.sh | sh
# Create the environment with all dependencies
pixi install

In general you can open a pixi environment shell via pixi shell.

Start the interactive interface to configure, run and visualize your simulations:

pixi run start

This will execute marimo run examples/run.py in the background and should open a browser tab.

Usage

Interactive interface

The provided interface was built using marimo. In addition to the app-like option described above the interface can also be launched in an editable notebook-like mode:

pixi run edit # executes: marimo edit examples/run.py

Beyond the interface

In addition to the interactive interface an overview of all required commands and scripts is provided below such that one can easily integrate it into existing frameworks and workflows.

Microstructure generation:

To generate a periodic Voronoi tessellation and voxel-based microstructure representation a python script is provided here. Number of grains, domain size and seed sampling technique as well as resolution and interface thickness can be set therein. For more information we refer directly to MSUtils.

Simulation:

All parameters (simulation as well as solver specific) are set in an input file. An example template is provided here. One can compute:

  • concentration fluctuation field (displacement_fluctuation)
  • concentration field (displacement)
  • gradient field (strain)
  • flux field (stress)
  • effective diffusivity tensor (homogenized_tangent) - here the loading can be set to arbitrary values

A detailed documentation can also be found in the FANS repository.

A FANS simulation can be launched by passing the number of processes (16) together with the paths to input file (.json) and results file (.h5):

mpiexec -n 16 FANS path/to/input.json path/to/results.h5

Visualization:

To view all full-field solutions from a results file in ParaView a xdmf-file can be generated by running:

pixi run h52xdmf path/to/results.h5

Acknowledgements

Funded by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy - EXC 2075 – 390740016. We acknowledge the support of the Stuttgart Center for Simulation Science (SimTech).

Contributors

About

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

PolycrystalDiffusion

Pixi Badge

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials - powered by MSUtils and FANS

Table of contents

Features

We provide an interactive easy-to-use interface to directly configure parameters, run simulations and visualize results. This includes:

  • generating periodic Voronoi tessellations and corresponding voxel-based microstructures with prescribed grain boundary thickness
  • defining diffusion coefficients for bulk and transversely isotropic grain boundaries either directly or via Arrhenius parameters and temperature
  • computing full-field solutions (concentration, gradient and flux fields) as well as effective diffusivities
  • visualizing full-field solutions for rapid insights into diffusion behavior

Note that in-app visualization is limited to low resolution results. For high-resolution results and for advanced investigations we recommend viewing the results in ParaView using the generated xdmf-file.

More detailed information is provided below.

Getting started

Clone this repository to your system:

git clone https://github.com/DataAnalyticsEngineering/PolycrystalDiffusion
cd PolycrystalDiffusion

We recommend using pixi to effortlessly set up an isolated environment with all required dependencies:

# Install pixi if not done already
curl -fsSL https://pixi.sh/install.sh | sh
# Create the environment with all dependencies
pixi install

In general you can open a pixi environment shell via pixi shell.

Start the interactive interface to configure, run and visualize your simulations:

pixi run start

This will execute marimo run examples/run.py in the background and should open a browser tab.

Usage

Interactive interface

The provided interface was built using marimo. In addition to the app-like option described above the interface can also be launched in an editable notebook-like mode:

pixi run edit # executes: marimo edit examples/run.py

Beyond the interface

In addition to the interactive interface an overview of all required commands and scripts is provided below such that one can easily integrate it into existing frameworks and workflows.

Microstructure generation:

To generate a periodic Voronoi tessellation and voxel-based microstructure representation a python script is provided here. Number of grains, domain size and seed sampling technique as well as resolution and interface thickness can be set therein. For more information we refer directly to MSUtils.

Simulation:

All parameters (simulation as well as solver specific) are set in an input file. An example template is provided here. One can compute:

  • concentration fluctuation field (displacement_fluctuation)
  • concentration field (displacement)
  • gradient field (strain)
  • flux field (stress)
  • effective diffusivity tensor (homogenized_tangent) - here the loading can be set to arbitrary values

A detailed documentation can also be found in the FANS repository.

A FANS simulation can be launched by passing the number of processes (16) together with the paths to input file (.json) and results file (.h5):

mpiexec -n 16 FANS path/to/input.json path/to/results.h5

Visualization:

To view all full-field solutions from a results file in ParaView a xdmf-file can be generated by running:

pixi run h52xdmf path/to/results.h5

Acknowledgements

Funded by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy - EXC 2075 – 390740016. We acknowledge the support of the Stuttgart Center for Simulation Science (SimTech).

Contributors

About

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PolycrystalDiffusion

Pixi Badge

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials - powered by MSUtils and FANS

Table of contents

Features

We provide an interactive easy-to-use interface to directly configure parameters, run simulations and visualize results. This includes:

  • generating periodic Voronoi tessellations and corresponding voxel-based microstructures with prescribed grain boundary thickness
  • defining diffusion coefficients for bulk and transversely isotropic grain boundaries either directly or via Arrhenius parameters and temperature
  • computing full-field solutions (concentration, gradient and flux fields) as well as effective diffusivities
  • visualizing full-field solutions for rapid insights into diffusion behavior

Note that in-app visualization is limited to low resolution results. For high-resolution results and for advanced investigations we recommend viewing the results in ParaView using the generated xdmf-file.

More detailed information is provided below.

Getting started

Clone this repository to your system:

git clone https://github.com/DataAnalyticsEngineering/PolycrystalDiffusion
cd PolycrystalDiffusion

We recommend using pixi to effortlessly set up an isolated environment with all required dependencies:

# Install pixi if not done already
curl -fsSL https://pixi.sh/install.sh | sh
# Create the environment with all dependencies
pixi install

In general you can open a pixi environment shell via pixi shell.

Start the interactive interface to configure, run and visualize your simulations:

pixi run start

This will execute marimo run examples/run.py in the background and should open a browser tab.

Usage

Interactive interface

The provided interface was built using marimo. In addition to the app-like option described above the interface can also be launched in an editable notebook-like mode:

pixi run edit # executes: marimo edit examples/run.py

Beyond the interface

In addition to the interactive interface an overview of all required commands and scripts is provided below such that one can easily integrate it into existing frameworks and workflows.

Microstructure generation:

To generate a periodic Voronoi tessellation and voxel-based microstructure representation a python script is provided here. Number of grains, domain size and seed sampling technique as well as resolution and interface thickness can be set therein. For more information we refer directly to MSUtils.

Simulation:

All parameters (simulation as well as solver specific) are set in an input file. An example template is provided here. One can compute:

  • concentration fluctuation field (displacement_fluctuation)
  • concentration field (displacement)
  • gradient field (strain)
  • flux field (stress)
  • effective diffusivity tensor (homogenized_tangent) - here the loading can be set to arbitrary values

A detailed documentation can also be found in the FANS repository.

A FANS simulation can be launched by passing the number of processes (16) together with the paths to input file (.json) and results file (.h5):

mpiexec -n 16 FANS path/to/input.json path/to/results.h5

Visualization:

To view all full-field solutions from a results file in ParaView a xdmf-file can be generated by running:

pixi run h52xdmf path/to/results.h5

Acknowledgements

Funded by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy - EXC 2075 – 390740016. We acknowledge the support of the Stuttgart Center for Simulation Science (SimTech).

Contributors

About

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PolycrystalDiffusion

Pixi Badge

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials - powered by MSUtils and FANS

Table of contents

Features

We provide an interactive easy-to-use interface to directly configure parameters, run simulations and visualize results. This includes:

  • generating periodic Voronoi tessellations and corresponding voxel-based microstructures with prescribed grain boundary thickness
  • defining diffusion coefficients for bulk and transversely isotropic grain boundaries either directly or via Arrhenius parameters and temperature
  • computing full-field solutions (concentration, gradient and flux fields) as well as effective diffusivities
  • visualizing full-field solutions for rapid insights into diffusion behavior

Note that in-app visualization is limited to low resolution results. For high-resolution results and for advanced investigations we recommend viewing the results in ParaView using the generated xdmf-file.

More detailed information is provided below.

Getting started

Clone this repository to your system:

git clone https://github.com/DataAnalyticsEngineering/PolycrystalDiffusion
cd PolycrystalDiffusion

We recommend using pixi to effortlessly set up an isolated environment with all required dependencies:

# Install pixi if not done already
curl -fsSL https://pixi.sh/install.sh | sh
# Create the environment with all dependencies
pixi install

In general you can open a pixi environment shell via pixi shell.

Start the interactive interface to configure, run and visualize your simulations:

pixi run start

This will execute marimo run examples/run.py in the background and should open a browser tab.

Usage

Interactive interface

The provided interface was built using marimo. In addition to the app-like option described above the interface can also be launched in an editable notebook-like mode:

pixi run edit # executes: marimo edit examples/run.py

Beyond the interface

In addition to the interactive interface an overview of all required commands and scripts is provided below such that one can easily integrate it into existing frameworks and workflows.

Microstructure generation:

To generate a periodic Voronoi tessellation and voxel-based microstructure representation a python script is provided here. Number of grains, domain size and seed sampling technique as well as resolution and interface thickness can be set therein. For more information we refer directly to MSUtils.

Simulation:

All parameters (simulation as well as solver specific) are set in an input file. An example template is provided here. One can compute:

  • concentration fluctuation field (displacement_fluctuation)
  • concentration field (displacement)
  • gradient field (strain)
  • flux field (stress)
  • effective diffusivity tensor (homogenized_tangent) - here the loading can be set to arbitrary values

A detailed documentation can also be found in the FANS repository.

A FANS simulation can be launched by passing the number of processes (16) together with the paths to input file (.json) and results file (.h5):

mpiexec -n 16 FANS path/to/input.json path/to/results.h5

Visualization:

To view all full-field solutions from a results file in ParaView a xdmf-file can be generated by running:

pixi run h52xdmf path/to/results.h5

Acknowledgements

Funded by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy - EXC 2075 – 390740016. We acknowledge the support of the Stuttgart Center for Simulation Science (SimTech).

Contributors

About

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

PolycrystalDiffusion

Pixi Badge

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials - powered by MSUtils and FANS

Table of contents

Features

We provide an interactive easy-to-use interface to directly configure parameters, run simulations and visualize results. This includes:

  • generating periodic Voronoi tessellations and corresponding voxel-based microstructures with prescribed grain boundary thickness
  • defining diffusion coefficients for bulk and transversely isotropic grain boundaries either directly or via Arrhenius parameters and temperature
  • computing full-field solutions (concentration, gradient and flux fields) as well as effective diffusivities
  • visualizing full-field solutions for rapid insights into diffusion behavior

Note that in-app visualization is limited to low resolution results. For high-resolution results and for advanced investigations we recommend viewing the results in ParaView using the generated xdmf-file.

More detailed information is provided below.

Getting started

Clone this repository to your system:

git clone https://github.com/DataAnalyticsEngineering/PolycrystalDiffusion
cd PolycrystalDiffusion

We recommend using pixi to effortlessly set up an isolated environment with all required dependencies:

# Install pixi if not done already
curl -fsSL https://pixi.sh/install.sh | sh
# Create the environment with all dependencies
pixi install

In general you can open a pixi environment shell via pixi shell.

Start the interactive interface to configure, run and visualize your simulations:

pixi run start

This will execute marimo run examples/run.py in the background and should open a browser tab.

Usage

Interactive interface

The provided interface was built using marimo. In addition to the app-like option described above the interface can also be launched in an editable notebook-like mode:

pixi run edit # executes: marimo edit examples/run.py

Beyond the interface

In addition to the interactive interface an overview of all required commands and scripts is provided below such that one can easily integrate it into existing frameworks and workflows.

Microstructure generation:

To generate a periodic Voronoi tessellation and voxel-based microstructure representation a python script is provided here. Number of grains, domain size and seed sampling technique as well as resolution and interface thickness can be set therein. For more information we refer directly to MSUtils.

Simulation:

All parameters (simulation as well as solver specific) are set in an input file. An example template is provided here. One can compute:

  • concentration fluctuation field (displacement_fluctuation)
  • concentration field (displacement)
  • gradient field (strain)
  • flux field (stress)
  • effective diffusivity tensor (homogenized_tangent) - here the loading can be set to arbitrary values

A detailed documentation can also be found in the FANS repository.

A FANS simulation can be launched by passing the number of processes (16) together with the paths to input file (.json) and results file (.h5):

mpiexec -n 16 FANS path/to/input.json path/to/results.h5

Visualization:

To view all full-field solutions from a results file in ParaView a xdmf-file can be generated by running:

pixi run h52xdmf path/to/results.h5

Acknowledgements

Funded by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy - EXC 2075 – 390740016. We acknowledge the support of the Stuttgart Center for Simulation Science (SimTech).

Contributors

About

Interactive interface for microstructure generation and diffusion simulation in polycrystalline materials

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages