Instruction for Executing CCISE Software Programs (Sequential Testbed I)
Prepared exclusively for Physics 681, Spring 1999 Materials Simulations by
David Chen (04/08/99)
- Set up the appropriate path in your login environment
Add the following PATH
/afs/theory.cornell.edu/tc/crackprop2/projects/stb1b3/bin to the ".login"
file in your sp home directory and "source .login"
So an example might look like the following: set path=($path $HOME/bin .
/afs/theory.cornell.edu/tc/crackprop2/projects/stb1b3/bin)
Do "echo $PATH" to ensure the PATH environment variable has been set up
properly.
- [ Not for this class... Usually you would do this
Create model using OSM (C routines)
Type "osm" and create a model accordingly (see CFG software documents for
instruction
http://www.cfg.cornell.edu/software/CFG_software.html) ]
- Instead of running osm, copy ~sethna/FEM/cube.dat into your directory
cp ~sethna/FEM/cube.dat .
- Take a look at ~sethna/FEM/cube.dat, using "more", "vi", "emacs", or "nc".
Notice that, apart from mysterious first and last lines, it's just a list
of surfaces and vertices. The "1 1 0" lines are giving the number of
subdivisions (we'll add more subdivisions using franc3d). The "2" after
each surface is the type of surface. For more information, try
http://www.cfg.cornell.edu/software/documentation/F3D_concepts/F3D_concepts4.html#RTFToC27
- Insert cracks, add boundary conditions and create surface meshes using
FRANC3D (C routines)
Type "franc3d" and modify the model accordingly (see CFG software documents for
instruction http://www.cfg.cornell.edu/software/CFG_software.html)
- Type "franc3d"
- "Read geometry file", "cube.dat", "Accept"
Start with a simple cube, no crack:
- Develop Model, Specify Attributes, Boundary Conditions, New Boundary
Condition, Face BCs. Change the name to "displacement1", and use the
defaults for layers and load case. A large dialog box will come up:
see the next steps.
We want to pull the cube vertically. This means we want a fixed bottom face
(fixed x,y,z displacement), and a uniform vertical traction on the top face.
(Traction is force per unit area.) Let's call y the vertical direction.
- First, the fixed boundary condition: toggle to displacement along x, y,
and z, and accept.
- Add another new boundary condition, called "traction", and set the y
traction to 1, and accept.
We need to attach the boundaries to the top and bottom faces.
- Hit "slower" three times, and then use "H Rotate" to rotate the cube
until the top face shows in the forward direction.
- Attach Boundary Condition, FaceBC, traction1, accept. Click on the top
face, and Finish.
- Attach the displacement boundary condition to the bottom face.
- Hit "return" on Specify Attributes.
Now we want to add a surface mesh to the cube. We'll use another program
to take the surface mesh and extend it into a volume mesh of tetrahedra...
- Mesh Surfaces, Element Type, Triangle, Automatic. (This is unusually
easy, since we don't need small tetrahedra.)
- Hit "return" on Develop Model.
Now we output the triangulated, stretched surface to the 3D meshing program.
Notice that several output formats are available. What design pattern is this?
- Read/Write Analysis Files, 3D FEM I/O, Write GeoFmt file, for JMESH. Name it "cubeSimple".
- Hit "return" on Read/Write Analysis Files.
- Write Franc3D File, name "cubeSimple". (They will have different file
extensions.)
- end
- Create 3D volume mesh using Jmesh (C routines)
Type "jmesh cubeSimple"
- Formulate (create stiffness matrix and nodal force vector) for the FEM
model (C++ routines)
Type "formulate cubeSimple"
- Solve the linear equation system (C++ routines)
Type "ebesolve cubeSimple cubeSimple cubeSimple 1.0e-15 2000" where 1.0e-15
is the residual tolerance and 2000 is the number of the maximum iteration
steps
After the preparation messages, one will see three numbers indicate iteration
step, quadratic form of residual and the elapsed time on the screen.
- Extract the full displacements (Python routines)
Type "fulldisp cubeSimple.neq cubeSimple.dsp"
- Extract the nodal stresses (C++ routines)
Type
ndstress cubeSimple.geo cubeSimple.msh cubeSimple.disp tmp > cubeSimple.str
- Read the FEM analysis results into franc3d for visualization and fracture
analysis
- Run franc3d
- Read Franc3D File, cubeSimple.fys
To read in displacements and stresses from cubeSimple.disp and cubeSimple.str,
- "Read/Write Analysis File", "3D FEM I/O", "Read GeoFmt Results Files"
To visualize the deformed structure,
- "Visualize/Analyze Results", "Deformation & Contour", 1E6. Rotate it
around. It should look stretched vertically. Is it also deformed in shape?
Why?
- Explore the Deformation display control. Can you visualize the cube
without the triangulation? Explore the Contour Response Value: you can
look at various components of the stress.
- Left button to raise windows, right button to move windows.
Now we want to introduce a crack!
- Kill the contour/displacement window by clicking on the upper left corner.
- Develop Model, Modify Geometry.
Our crack will have three edges where it cuts the boundary, and a curved edge
inside the material, We start with the edges on the boundary:
- Add Edge, to Face, Indicate Face First, click on front of cube.
- Key in Coordinates, click on one end of the edge being added, modify
the coordinates as you see fit (left edge we used 0 5 10).
- Add the other end of the edge, key in coordinates. It doesn't need to be
a horizontal crack! We do recommend a straight, flat crack.
- Rotate the figure to expose the left face, add an edge to that face,
probably only a little way into the crack. The second vertex of the new
edge should be one of the vertices of the first added edge: you can
select it by clicking (without keying in coordinates).
- If the cube loses some lines, use the Front downward arrow to change
the clip plane position.
- Rotate the figure to expose the right face, and add the third edge.
- Nucleate Crack, Three-D Crack, Part-Thru Crack
- Click on the three edges you added, and Finish.
- Rotate it to see what your crack looks like. Click on the red line
extending inward to generate a curved crack front (which we don't
recommend). Click on the crack front when you are satisfied.
- Return from "Modify Geometry"
Now we need to mesh the surface. We start by adding subdivisions to all the
edges.
- Subdivide Edges, Subdivide All Remaining. This adds four nodes to all
the edges.
- Set Number of Subdivisions, to 10, click on the long edges of your crack.
- Return from Subdivide Edge.
Now we need to mesh the surfaces.
- Mesh Surfaces, Element Type Triangle, Automatic.
- Return from Develop Model.
Now we need to save our files for the crack stress analysis.
- Write Franc3D File, change name to cubeCracked.
- Write JMESH file as we did before.
- end
Now, we do the computation of the stresses and strains.
- jmesh, formulate, ebesolve. The second column is the error it's trying to
eliminate. The third is the wall-clock time.
- fulldisp, ndstress.
- franc3d, visualize deformed mesh and various stress concentrations as above.
- Notice that the stress should be concentrated near the crack tip. This
is where the material will tear first, propagating the crack!
Let's propagate our crack.
- Kill the countour/displacement window.
- Visualize/Analyze Results, Fracture Analysis, Stress Intensity Factor,
accept defaults. It should show the crack edge in green: the three plots
show the stress intensity factors along the crack front.
- Propagate Crack Front, Determine New Front Points, Accept, Accept defaults.
- Propogate Crack Front, Add and Tear Edges and Faces, Accept, Accept.
- Rotate and admire your new longer crack.
You can continue rounds of analysis as you see fit...
Statistical Mechanics: Entropy, Order Parameters, and Complexity,
now available at
Oxford University Press
(USA,
Europe).