stochasticMicrostructure

Below is a demonstration of the features of the stochasticMicrostructure function

Contents

clear; close all; clc;

Syntax

[F,V,C]=stochasticMicrostructure(M,IND,ptype);

Description

This function generates Stochastic Bicontinuous Microstructures

Input structure and default values:

inputStruct.L=1; % characteristic length
inputStruct.Ns=80; % number of sampling points
inputStruct.Nw=120; % number of waves
inputStruct.q0=55; % wave number
inputStruct.relD=0.5; % relative density
inputStruct.anisotropyFactors=[1 1 1]; %Anisotropy factors
inputStruct.isocap=1; %Option to cap the isosurface

Based on: Soyarslan et al. "3D stochastic bicontinuous microstructures: Generation, topology and elasticity" https://doi.org/10.1016/j.actamat.2018.01.005

Original author: Sebastien Callens, September 2020

Examples

Plot settings

cMap=parula(250);
faceAlpha1=1;
faceAlpha2=0.5;
edgeColor1='none';
edgeColor2='none';
fontSize=15;

Example 1

inputStruct.L=1; % characteristic length
inputStruct.Ns=75; % number of sampling points
inputStruct.Nw=120; % number of waves
inputStruct.q0=55; % wave number
inputStruct.relD=0.55; % relative density
inputStruct.anisotropyFactors=[1 1 1]; %Anisotropy factors
inputStruct.isocap=1; %Option to cap the isosurface

Create stochastic structure

[F,V,C]=stochasticMicrostructure(inputStruct);

Using grouping to keep only largest group

groupOptStruct.outputType='label';
[G,~,groupSize]=tesgroup(F,groupOptStruct); %Group connected faces
[~,indKeep]=max(groupSize); %Index of largest group

%Keep only largest group
F=F(G==indKeep,:); %Trim faces
C=C(G==indKeep,:); %Trim color data
[F,V]=patchCleanUnused(F,V); %Remove unused nodes

Visualize surface

cFigure;
gpatch(F,V,C,'none');
axisGeom; camlight headlight;
colormap gjet; icolorbar;
gdrawnow;

GIBBON www.gibboncode.org

Kevin Mattheus Moerman, gibbon.toolbox@gmail.com

GIBBON footer text

License: https://github.com/gibbonCode/GIBBON/blob/master/LICENSE

GIBBON: The Geometry and Image-based Bioengineering add-On. A toolbox for image segmentation, image-based modeling, meshing, and finite element analysis.

Copyright (C) 2006-2020 Kevin Mattheus Moerman

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.