Isogeometric Analysis in MOOSE
This example illustrates using Isogeometric Analysis (IGA) within MOOSE framework to perform a simulation. This example simulates loads applied to a "c-frame" to determine the maximum principal stress.
Creating IGA Mesh
To create the mesh file included in this example a Coreform Cubit license is needed. Coreform Cubit is a product released and maintained by Coreform, LLC. A free to use Cubit Learn license can be acquired.
The following is not required to run the example, but is required to generate the input mesh that is included in the example. To execute the Cubit journal file in batch from the command line use the following command:
Within the journal file, see Listing 1, there are unique commands that will generate a uspline on the discretized mesh.
Line 35 sets the degree and continuity of the uspline
As of this writing, the max degree supported by libMesh is 2.
All continuity must equal p-1 where p is the degree.
Line 36 constructs the uspline using the geometry as a basis.
Line 37 fits the uspline that was built to the geometry.
Listing 1: Complete Coreform Cubit file for generating IGA input mesh
(contrib/moose/modules/solid_mechanics/examples/cframe_iga/cframe_build.jou)MOOSE-IGA Simulation
Performing the simulation utilizing the mesh created above does not require much with respect to the MOOSE input, simply load the mesh from a file and select utilize the RATIONAL_BERNSTEIN element family as shown in Listing 2. Exporting using the VTK format (vtk = true
) input will output in a format that will capture the higher-order nature of the IGA based elements using Paraview visualization.
Listing 2: Complete input file for running example problem with IGA in MOOSE.
(contrib/moose/modules/solid_mechanics/examples/cframe_iga/cframe_iga.i)
Figure 1: Maximum principal stress for "c-frame" example utilizing IGA in MOOSE.