Binarized CT-scan image stack to Abaqus input file?

268 views
Skip to first unread message

DREAM3DNewbie

unread,
May 8, 2018, 8:53:19 PM5/8/18
to dream3d-users
Hi,

I have a binarized image stack from CT-scan, I would like to mesh it and export as ABAQUS input file. There is no grains or microstructure data, it's just a bulk structure. Is it possible to do so?

Thank you.

Sean Donegan

unread,
May 8, 2018, 9:01:05 PM5/8/18
to DREAM3DNewbie, dream3d-users
Technically yes, though note that currently the best that DREAM.3D can do with regards to volume meshing is block elements (ABAQUS element type C3D8).  You can create this using the Abaqus Hexahedron Exporter filter (also note that this will only create a geometric input for ABAQUS, no other material properties currently).  The various inputs to the filter can mostly take default values, but the one input you'll need to generate based on your CT data is the feature Ids.   Assuming your data are 8 bit images taking the values 0 or 1, you could simply cast your data to signed 32-bit integers using the Convert Attribute Array Data Type filter (DREAM.3D expects feature Ids to be 32-bit signed integers).  If your images take something more like 0 and 255 (perfect white and black), you would need to change the 255 values to 1 before running the cast filter.  You can do this using the Replace Value in Array filter.  The general thought process is to get a 32-bit signed integer array that takes the value 1 where you have material and 0 elsewhere.

hope that helps,

-Sean

Tuesday, May 8, 2018 8:53 PM

DREAM3DNewbie

unread,
May 8, 2018, 9:08:57 PM5/8/18
to dream3d-users
Hi Sean,

Thanks for the reply, pleased to know that it is possible to do.

Yes my image is 0 and 1 (8 bit Tiff stack), so hopefully it will go smoothly.

Meshed geometry is all that I need. C3D8 sounds great, but can Dream3D resolve complex geometry (bone like) with hexahedral element?

Is there an example for the above problem, or can you please name the filters step by step that I need to use?

Sean Donegan

unread,
May 8, 2018, 9:18:37 PM5/8/18
to DREAM3DNewbie, dream3d-users
The hexahedral mesh will end up looking basically the same as the input image; this means that while the geometry will be water-tight, the boundaries probably won't be conformal (they'll be "stair-stepped" along the pixels/voxels).  This may or may not be an issue for further simulations, since it depends on the particular application. 

The general filters to go from a binary tiff stack to the ABAQUS input file are:
  1. ITK::Import Images (3D Stack): Reads in the stack of images as a 3D volume.  You should get an 8-bit array called "ImageData" that sits on the voxels.
  2. Convert AttributeArray Data Type: Convert your ImageData array to a new array called "FeatureIds" whose type is signed 32-bit integer.
  3. Abaqus Hexahedron Exporter: Select the FeatureIds array you created in step 2 as the "Feature Ids" input in this filter.  Leave the hourglass stiffness at default, and set the other parameters for naming you output file.
  4. Write DREAM.3D Data File: This filter is not completely necessary, but will write out a .dream3d file and an .xdmf file.  You can open the .xdmf file using the ParaView software to visualize your 3D data stored in the .dream3d file.
hope that helps,

-Sean

Tuesday, May 8, 2018 9:08 PM
Tuesday, May 8, 2018 9:01 PM

DREAM3DNewbie

unread,
May 8, 2018, 9:30:05 PM5/8/18
to dream3d-users
Thanks a lot for the steps description.

I will be needing to mirror the part inside Abaqus to make it larger (CT-scan of the whole part would have reduced resolution), then merge the nodes at the sides/faces to get one final part. Now the problem is that the meshed faces/sides must stay straight (as in the CT data) for the node merging to work properly. Will the "stair-stepped" effect cause the outer sides/faces to become not straight? Is there an option in Dream3D to override any smoothing operation and strictly force the outer nodes to be exactly on the outer boundary?

Or as a easy solution, is there a way to mirror parts in Dream3D before or after meshing?

Sean Donegan

unread,
May 9, 2018, 6:48:05 AM5/9/18
to DREAM3DNewbie, dream3d-users
If you mirror the CT images before exporting to ABAQUS, the stair-stepping shouldn't cause a compatibility issue.  This is possible using DREAM.3D, though it may be a bit tricky; it might be best to try using something like Fiji first, which might have a straightforward image mirror capability.

To do this in DREAM.3D, you would want to import your image stack, then make a copy of it (Copy Object).  Then you can rotate your copy about the axis you wish to mirror (Rotate Sample Reference Frame).  You'll then have two separate 3D images that are mirrors of one another, but they need to be on the same (larger) image grid to export as one mesh.  You can get them on the same grid using the Fuse Regular Grid (Nearest Point) filter.  First you would need to create a new Data Container (Create Data Container) to store your new larger image.  Then create a new image using the Create Geometry filter.  When you create this new image, you would want it to be large enough to contain both your original CT stack and your mirrored CT stack.  Then you would run Fuse Regular Grid twice, once sampling your original CT onto the new larger image and once sampling your mirrored CT onto the larger image.

hope that helps,

-Sean

Tuesday, May 8, 2018 9:30 PM
Thanks a lot for the steps description.

I will be needing to mirror the part inside Abaqus to make it larger (CT-scan of the whole part would have reduced resolution), then merge the nodes at the sides/faces to get one final part. Now the problem is that the meshed faces/sides must stay straight (as in the CT data) for the node merging to work properly. Will the "stair-stepped" effect cause the outer sides/faces to become not straight? Is there an option in Dream3D to override any smoothing operation and strictly force the outer nodes to be exactly on the outer boundary?

Or as a easy solution, is there a way to mirror parts in Dream3D before or after meshing?

Tuesday, May 8, 2018 9:18 PM

DREAM3DNewbie

unread,
May 9, 2018, 8:59:32 AM5/9/18
to dream3d-users
Hi Sean,

Thanks a lot for the detailed response, I will go through all the above replies and try to resolve my meshing needs.

I was wondering if periodic meshing or Periodic Boundary Condition (PBC) is available in Dream3D?

Sean Donegan

unread,
May 9, 2018, 5:51:15 PM5/9/18
to DREAM3DNewbie, dream3d-users
DREAM.3D has the capability to create synthetic images (that is, volumes that fill space with various kinds of shape primitives, like spheres, ellipsoids, and cylinders), usually in the context of creating micro-models of materials structures (e.g., polycrystalline metals).  When creating these synthetic images, it is possible to enforce periodicity such that the image "wraps around" the other side.  However, this feature is only available when creating a synthetic data set from scratch; there is not current capability to enforce periodicity on an already existing data set, which is something that could be added in the future since it is relevant in various image processing applications.

hope that helps,

-Sean

Wednesday, May 9, 2018 8:59 AM
Hi Sean,

Thanks a lot for the detailed response, I will go through all the above replies and try to resolve my meshing needs.

I was wondering if periodic meshing or Periodic Boundary Condition (PBC) is available in Dream3D?
--
You received this message because you are subscribed to the Google Groups "dream3d-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dream3d-user...@googlegroups.com.
To post to this group, send email to dream3...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dream3d-users/40fd37e1-6fa6-49c1-b9d6-48a32c08a2eb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Wednesday, May 9, 2018 6:48 AM

DREAM3DNewbie

unread,
May 10, 2018, 12:45:05 AM5/10/18
to dream3d-users
Great to know that "PBC in actual geometry" is planned in future roadmap.

I did meshing of the part in Dream3D following your steps, the resultant element set file size 22GB and node set is 10GB. ABAQUS is crashing trying to open the input file.

Is there a way to make a coarser mesh or to explicitly define the C3D8 element size? I do not mind C3D4 tetrahedral element as well.

Sean Donegan

unread,
May 10, 2018, 6:28:05 AM5/10/18
to DREAM3DNewbie, dream3d-users
The easiest way to coarsen the mesh is to change the resolution of the 3D image before exporting the ABAQUS files, which can be done using the Change Resolution filter.  Let's say your 3D image was 100x100x100 voxels with a resolution of 1x1x1.  If you run Change Resolution and set your new resolution to 2x2x2, the image will now be 50x50x50 voxels.  It will still occupy the same volume in real space, just have fewer voxels (and therefore fewer hexahedra).

You can check what the current resolution of your image is by mousing over your data container in the data structure window on the right; a tooltip should pop up that shows you the dimensions, origin, and resolution (just make sure to check when you have a filter selected that comes before the Change Resolution filter, as after that if you mouse over the data container it will show you what the new resolution would be if you ran the pipeline).

hope that helps,

-Sean

Thursday, May 10, 2018 12:45 AM
Great to know that "PBC in actual geometry" is planned in future roadmap.

I did meshing of the part in Dream3D following your steps, the resultant element set file size 22GB and node set is 10GB. ABAQUS is crashing trying to open the input file.

Is there a way to make a coarser mesh or to explicitly define the C3D8 element size? I do not mind C3D4 tetrahedral element as well.
--
You received this message because you are subscribed to the Google Groups "dream3d-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dream3d-user...@googlegroups.com.
To post to this group, send email to dream3...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
Wednesday, May 9, 2018 5:51 PM

DREAM3DNewbie

unread,
May 10, 2018, 8:16:25 AM5/10/18
to dream3d-users
Hi Sean,

Dream3D is crashing, I think I did something wrong. Here are the screenshots, the 3D stack import was fine.


Convert AttributeArray Data Type



Change Resolution



Abaqus Hexahedron Exporter


Sean Donegan

unread,
May 10, 2018, 5:51:34 PM5/10/18
to DREAM3DNewbie, dream3d-users
The issue is that you do not currently have a feature attribute matrix selected in the Change Resolution filter.  A feature attribute matrix is essentially a container where information about features is stored (features are just groups of elements, such as a group of pixels that all have the same feature Id).  The Change Resolution filter is asking for a feature attribute matrix because the Renumber Features option is checked.  This option will re-shuffle feature Ids if the resolution change would cause a feature to disappear, which can happen if the resolution is made very coarse.  The filter would then resize the feature attribute matrix to account for the lost features.

In your particular situation, since you have a binarized volume, you shouldn't need to use the Renumber Features option; try unchecking it and the pipeline should then run.  In general, if you have feature Ids but don't have a feature attribute matrix, one can be created by using the Link Feature Attribute Matrix to Element Attribute Array filter, selecting the feature Ids for which you want to create the corresponding feature attribute matrix.

hope that helps,

-Sean

Thursday, May 10, 2018 8:16 AM
--
You received this message because you are subscribed to the Google Groups "dream3d-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dream3d-user...@googlegroups.com.
To post to this group, send email to dream3...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
Thursday, May 10, 2018 6:27 AM

DREAM3DNewbie

unread,
May 11, 2018, 6:09:03 AM5/11/18
to dream3d-users
Unchecking the "Renumber Features" option resulted in the completion of the pipeline run, the file size got reduced dramatically.

The ABAQUS file names are non-existent, only the extension is there (please see below). I have put the job name as "input" but nothing in the generated file. ABAQUS can't import these.

Any way to ensure that the generated files to have a name? Or should I just manually rename the main .inp file (the top one below)?


Sean Donegan

unread,
May 11, 2018, 5:05:00 PM5/11/18
to DREAM3DNewbie, dream3d-users
It looks like the file names are generated using the Output File Prefix option on the ABAQUS Hexahedron filter; try entering some text in that option to see if proper file names are generated.

hope that helps,

-Sean

Friday, May 11, 2018 6:09 AM
--
You received this message because you are subscribed to the Google Groups "dream3d-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dream3d-user...@googlegroups.com.
To post to this group, send email to dream3...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
Thursday, May 10, 2018 5:51 PM
Reply all
Reply to author
Forward
0 new messages