Wednesday, May 18, 2011

Compiling OpenSees on Ubuntu 10.04 LTS

So, I developed some major issues with my Vista x64 image. Ordered a Win 7 DVD plus a solid state drive and will rebuild it this weekend.

In the meantime, I decided to play with my backup Ubuntu Wubi image. Its Ubunutu 10.04.

There is an alternative motive here, as I might develop an OpenSeesVM that I can bundle and deploy as a tool for others.

Here are the rough steps I followed.

Note: This installs the OpenSees executable at /home/user/bin. This is clearly not the best place, but I'll change it later. At least it works!




Install some tools:


sudo apt-get install build-essential
sudo apt-get install tcl8.3 tcl8.3-dev
sudo apt-get install vim
sudo apt-get install gfortran
sudo apt-get install tcl8.4-dev
sudo apt-get install libpng12-dev
sudo apt-get install tcl8.5-dev
sudo apt-get install tk-dev
sudo apt-get install libglpng
sudo apt-get install freeglut3-dev


Yes, some of this is overkill but all of this had to be installed before it would compile and link.




Download the stable release OpenSees2.2.2.tar.gz from the OpenSees website.

Unzip it and move it to some location under your home dir:


gunzip OpenSees2.2.2.tar.gz
ls
tar -xvf OpenSees2.2.2.tar
ls
mv OpenSees ~/OpenSees
cd /home/henderso/OpenSees/
ls
cat README





Download my Makefile.def. I posted my Makefile for Ubuntu 10.04 here.

Extract the file so that Makefile.def is in the /home/user/OpenSees dir

Change the permissions on it:


chmod 775 Makefile.def


Note: I made the following major changes to the file (with the help of plenty of others):

- Add the AMD directory (Read more here)

- Fixed up the general home and build paths





You need to create a lib and bin directory in the home folder specified in Makefile.def. In my example, this is the user home. If these directories don't exist, the linker will spaz when you run Make.


mkdir ~/bin
mkdir ~/lib





Now run the build using make:


cd ~/OpenSees (or where ever you put it)
make


There are a few bugs that might arise in some source files (tkMain.cpp). If this happens, edit the files and comment out the offending lines.

Here's a list:


  • Comment out Line 112 in SRC/tcl/tkMain.cpp

Tuesday, May 10, 2011

CalculiX

This looks promising...

http://www.dhondt.de/

Windows binaries:

http://www.bconverged.com/download.php

nvStructural for Opensees Tutorial 1

Novel CAE makes a GUI for Opensees called nvStructural. It's not documented beyond some very confusing help pages, and is unstable. BUT, on the plus side:

- it is useful to start playing with Opensees if for nothing more than a form of visual feedback

- you can use it to produce opensees txt files that are commented and great to teach yourself opensees

- they offer a free version for students

So, I decided to put up a quick tutorial on how to use it.

Step 1: Start nvStructural

Step 2: Start a new file (Ctril-N)

Step 3: In the Structure Type drop down, select Solid Prism. Press OK






You should see an image that looks like this:




Step 4:Select (click) an intersection of two lines on the top face



Step 5: With the point selected, right click and the Assign->Points->Load

Enter an Fz value of -10...leave eveything else at default. Click OK

Step 6. Select the Analysis ribbon, then select the analyze button. In th popup analysis window, leave everything as a default then click Run Selected. If everything is set right, the analysis should crank and you should get a deformed shape:




You can play with the Stresses button to see the stress across the prism.




Troubleshooting:

- If you have trouble, and the analysis doesn't run, check the opensees path setting in the nvStructural options (Hit the round fancy 'button' in upper let of window then options button)....Ensure you select the opensees.exe file for the path and not just the directory!



Final Point:

Use the export option of nvStructural to save your work in opensees format. You can then browse these files and teach yourself how to "reverse engineer" your own work. Great learning technique.

Here's my DL Analysis.ops:

# OpenSees Input file, created by Novel Structural v2.0.0 Free Student Edition [ http://www.novelcae.com ]


#NVS::Start
# Units: Length[m], Mass[kg], Time[sec], Angle[deg]

wipe;
file mkdir Output;


#NVS::Before3D3DOFOutput
model basic -ndm 3 -ndf 3;


#NVS::Before3D3DOFMaterials
uniaxialMaterial Elastic 1 2.000000E+11 0.0 ;
uniaxialMaterial ElasticPP 2 2.000000E+11 0.1 -0.1 0.0 ;
uniaxialMaterial ElasticPPGap 3 2.000000E+11 2.500000E+8 0.01 0.01 ;
uniaxialMaterial ENT 4 2.500000E+1 ;
uniaxialMaterial Parallel 5 1 1 ;
uniaxialMaterial Series 6 1 1 ;
uniaxialMaterial Hardening 7 2.000000E+11 2.500000E+8 0.01 0.01 0.0 ;
uniaxialMaterial Concrete01 8 -2.750000E+7 -0.003 -5.500000E+6 -0.05 ;
uniaxialMaterial Concrete02 9 -2.750000E+7 -0.003 -5.500000E+6 -0.05 0.5 2.750000E+6 1.375000E+7 ;
uniaxialMaterial Concrete02 10 -3.575000E+7 -0.00286 -7.150000E+6 -0.0143 0.5 2.750000E+6 1.375000E+7 ;
uniaxialMaterial Concrete03 11 -2.750000E+7 -0.003 -5.500000E+6 -0.05 0.5 2.500000E+7 0.015 5.000000E+6 1.0 0.02 ;
uniaxialMaterial Steel01 12 2.500000E+8 2.000000E+11 0.01 0.0 1.0 0.0 1.0 ;
uniaxialMaterial Steel02 13 2.500000E+8 2.000000E+11 0.01 10.0 0.925 0.15 0.0 1.0 0.0 1.0 0.0 ;
uniaxialMaterial Hysteretic 14 2.500000E+8 0.002 3.250000E+8 0.004 3.375000E+8 0.006 -2.500000E+8 -0.002 -3.250000E+8 -0.004 -3.375000E+8 -0.006 1.0 1.0 0.0 0.0 0.5 ;
nDMaterial ElasticIsotropic 15 2.000000E+11 0.3 ;
nDMaterial PlaneStress 16 15 ;
nDMaterial PlateFiber 17 15 ;

#NVS::After3D3DOFMaterials


#NVS::Before3D3DOFNodes
node 1 -6.000000 -4.500000 0.000000;
node 2 -3.000000 -4.500000 0.000000;
node 3 -3.000000 -1.500000 0.000000;
node 4 -6.000000 -1.500000 0.000000;
node 5 -6.000000 -4.500000 3.000000;
node 6 -3.000000 -4.500000 3.000000;
node 7 -3.000000 -1.500000 3.000000;
node 8 -6.000000 -1.500000 3.000000;
node 9 -6.000000 -4.500000 6.000000;
node 10 -3.000000 -4.500000 6.000000;
node 11 -3.000000 -1.500000 6.000000;
node 12 -6.000000 -1.500000 6.000000;
node 13 -6.000000 -4.500000 9.000000;
node 14 -3.000000 -4.500000 9.000000;
node 15 -3.000000 -1.500000 9.000000;
node 16 -6.000000 -1.500000 9.000000;
node 17 -3.000000 1.500000 0.000000;
node 18 -6.000000 1.500000 0.000000;
node 19 -3.000000 1.500000 3.000000;
node 20 -6.000000 1.500000 3.000000;
node 21 -3.000000 1.500000 6.000000;
node 22 -6.000000 1.500000 6.000000;
node 23 -3.000000 1.500000 9.000000;
node 24 -6.000000 1.500000 9.000000;
node 25 -3.000000 4.500000 0.000000;
node 26 -6.000000 4.500000 0.000000;
node 27 -3.000000 4.500000 3.000000;
node 28 -6.000000 4.500000 3.000000;
node 29 -3.000000 4.500000 6.000000;
node 30 -6.000000 4.500000 6.000000;
node 31 -3.000000 4.500000 9.000000;
node 32 -6.000000 4.500000 9.000000;
node 33 0.000000 -4.500000 0.000000;
node 34 0.000000 -1.500000 0.000000;
node 35 0.000000 -4.500000 3.000000;
node 36 0.000000 -1.500000 3.000000;
node 37 0.000000 -4.500000 6.000000;
node 38 0.000000 -1.500000 6.000000;
node 39 0.000000 -4.500000 9.000000;
node 40 0.000000 -1.500000 9.000000;
node 41 0.000000 1.500000 0.000000;
node 42 0.000000 1.500000 3.000000;
node 43 0.000000 1.500000 6.000000;
node 44 0.000000 1.500000 9.000000;
node 45 0.000000 4.500000 0.000000;
node 46 0.000000 4.500000 3.000000;
node 47 0.000000 4.500000 6.000000;
node 48 0.000000 4.500000 9.000000;
node 49 3.000000 -4.500000 0.000000;
node 50 3.000000 -1.500000 0.000000;
node 51 3.000000 -4.500000 3.000000;
node 52 3.000000 -1.500000 3.000000;
node 53 3.000000 -4.500000 6.000000;
node 54 3.000000 -1.500000 6.000000;
node 55 3.000000 -4.500000 9.000000;
node 56 3.000000 -1.500000 9.000000;
node 57 3.000000 1.500000 0.000000;
node 58 3.000000 1.500000 3.000000;
node 59 3.000000 1.500000 6.000000;
node 60 3.000000 1.500000 9.000000;
node 61 3.000000 4.500000 0.000000;
node 62 3.000000 4.500000 3.000000;
node 63 3.000000 4.500000 6.000000;
node 64 3.000000 4.500000 9.000000;
node 65 6.000000 -4.500000 0.000000;
node 66 6.000000 -1.500000 0.000000;
node 67 6.000000 -4.500000 3.000000;
node 68 6.000000 -1.500000 3.000000;
node 69 6.000000 -4.500000 6.000000;
node 70 6.000000 -1.500000 6.000000;
node 71 6.000000 -4.500000 9.000000;
node 72 6.000000 -1.500000 9.000000;
node 73 6.000000 1.500000 0.000000;
node 74 6.000000 1.500000 3.000000;
node 75 6.000000 1.500000 6.000000;
node 76 6.000000 1.500000 9.000000;
node 77 6.000000 4.500000 0.000000;
node 78 6.000000 4.500000 3.000000;
node 79 6.000000 4.500000 6.000000;
node 80 6.000000 4.500000 9.000000;

#NVS::After3D3DOFNodes


#NVS::Before3D3DOFPointMasses
mass 1 26493.750000 26493.750000 26493.750000;
mass 2 52987.500000 52987.500000 52987.500000;
mass 3 105975.000000 105975.000000 105975.000000;
mass 4 52987.500000 52987.500000 52987.500000;
mass 5 52987.500000 52987.500000 52987.500000;
mass 6 105975.000000 105975.000000 105975.000000;
mass 7 211950.000000 211950.000000 211950.000000;
mass 8 105975.000000 105975.000000 105975.000000;
mass 9 52987.500000 52987.500000 52987.500000;
mass 10 105975.000000 105975.000000 105975.000000;
mass 11 211950.000000 211950.000000 211950.000000;
mass 12 105975.000000 105975.000000 105975.000000;
mass 13 26493.750000 26493.750000 26493.750000;
mass 14 52987.500000 52987.500000 52987.500000;
mass 15 105975.000000 105975.000000 105975.000000;
mass 16 52987.500000 52987.500000 52987.500000;
mass 17 105975.000000 105975.000000 105975.000000;
mass 18 52987.500000 52987.500000 52987.500000;
mass 19 211950.000000 211950.000000 211950.000000;
mass 20 105975.000000 105975.000000 105975.000000;
mass 21 211950.000000 211950.000000 211950.000000;
mass 22 105975.000000 105975.000000 105975.000000;
mass 23 105975.000000 105975.000000 105975.000000;
mass 24 52987.500000 52987.500000 52987.500000;
mass 25 52987.500000 52987.500000 52987.500000;
mass 26 26493.750000 26493.750000 26493.750000;
mass 27 105975.000000 105975.000000 105975.000000;
mass 28 52987.500000 52987.500000 52987.500000;
mass 29 105975.000000 105975.000000 105975.000000;
mass 30 52987.500000 52987.500000 52987.500000;
mass 31 52987.500000 52987.500000 52987.500000;
mass 32 26493.750000 26493.750000 26493.750000;
mass 33 52987.500000 52987.500000 52987.500000;
mass 34 105975.000000 105975.000000 105975.000000;
mass 35 105975.000000 105975.000000 105975.000000;
mass 36 211950.000000 211950.000000 211950.000000;
mass 37 105975.000000 105975.000000 105975.000000;
mass 38 211950.000000 211950.000000 211950.000000;
mass 39 52987.500000 52987.500000 52987.500000;
mass 40 105975.000000 105975.000000 105975.000000;
mass 41 105975.000000 105975.000000 105975.000000;
mass 42 211950.000000 211950.000000 211950.000000;
mass 43 211950.000000 211950.000000 211950.000000;
mass 44 105975.000000 105975.000000 105975.000000;
mass 45 52987.500000 52987.500000 52987.500000;
mass 46 105975.000000 105975.000000 105975.000000;
mass 47 105975.000000 105975.000000 105975.000000;
mass 48 52987.500000 52987.500000 52987.500000;
mass 49 52987.500000 52987.500000 52987.500000;
mass 50 105975.000000 105975.000000 105975.000000;
mass 51 105975.000000 105975.000000 105975.000000;
mass 52 211950.000000 211950.000000 211950.000000;
mass 53 105975.000000 105975.000000 105975.000000;
mass 54 211950.000000 211950.000000 211950.000000;
mass 55 52987.500000 52987.500000 52987.500000;
mass 56 105975.000000 105975.000000 105975.000000;
mass 57 105975.000000 105975.000000 105975.000000;
mass 58 211950.000000 211950.000000 211950.000000;
mass 59 211950.000000 211950.000000 211950.000000;
mass 60 105975.000000 105975.000000 105975.000000;
mass 61 52987.500000 52987.500000 52987.500000;
mass 62 105975.000000 105975.000000 105975.000000;
mass 63 105975.000000 105975.000000 105975.000000;
mass 64 52987.500000 52987.500000 52987.500000;
mass 65 26493.750000 26493.750000 26493.750000;
mass 66 52987.500000 52987.500000 52987.500000;
mass 67 52987.500000 52987.500000 52987.500000;
mass 68 105975.000000 105975.000000 105975.000000;
mass 69 52987.500000 52987.500000 52987.500000;
mass 70 105975.000000 105975.000000 105975.000000;
mass 71 26493.750000 26493.750000 26493.750000;
mass 72 52987.500000 52987.500000 52987.500000;
mass 73 52987.500000 52987.500000 52987.500000;
mass 74 105975.000000 105975.000000 105975.000000;
mass 75 105975.000000 105975.000000 105975.000000;
mass 76 52987.500000 52987.500000 52987.500000;
mass 77 26493.750000 26493.750000 26493.750000;
mass 78 52987.500000 52987.500000 52987.500000;
mass 79 52987.500000 52987.500000 52987.500000;
mass 80 26493.750000 26493.750000 26493.750000;

#NVS::After3D3DOFPointMasses


#NVS::Before3D3DOFElements
element stdBrick 1 3 4 1 2 7 8 5 6 15 ;
element stdBrick 2 7 8 5 6 11 12 9 10 15 ;
element stdBrick 3 11 12 9 10 15 16 13 14 15 ;
element stdBrick 4 17 18 4 3 19 20 8 7 15 ;
element stdBrick 5 19 20 8 7 21 22 12 11 15 ;
element stdBrick 6 21 22 12 11 23 24 16 15 15 ;
element stdBrick 7 25 26 18 17 27 28 20 19 15 ;
element stdBrick 8 27 28 20 19 29 30 22 21 15 ;
element stdBrick 9 29 30 22 21 31 32 24 23 15 ;
element stdBrick 10 34 3 2 33 36 7 6 35 15 ;
element stdBrick 11 36 7 6 35 38 11 10 37 15 ;
element stdBrick 12 38 11 10 37 40 15 14 39 15 ;
element stdBrick 13 41 17 3 34 42 19 7 36 15 ;
element stdBrick 14 42 19 7 36 43 21 11 38 15 ;
element stdBrick 15 43 21 11 38 44 23 15 40 15 ;
element stdBrick 16 45 25 17 41 46 27 19 42 15 ;
element stdBrick 17 46 27 19 42 47 29 21 43 15 ;
element stdBrick 18 47 29 21 43 48 31 23 44 15 ;
element stdBrick 19 50 34 33 49 52 36 35 51 15 ;
element stdBrick 20 52 36 35 51 54 38 37 53 15 ;
element stdBrick 21 54 38 37 53 56 40 39 55 15 ;
element stdBrick 22 57 41 34 50 58 42 36 52 15 ;
element stdBrick 23 58 42 36 52 59 43 38 54 15 ;
element stdBrick 24 59 43 38 54 60 44 40 56 15 ;
element stdBrick 25 61 45 41 57 62 46 42 58 15 ;
element stdBrick 26 62 46 42 58 63 47 43 59 15 ;
element stdBrick 27 63 47 43 59 64 48 44 60 15 ;
element stdBrick 28 66 50 49 65 68 52 51 67 15 ;
element stdBrick 29 68 52 51 67 70 54 53 69 15 ;
element stdBrick 30 70 54 53 69 72 56 55 71 15 ;
element stdBrick 31 73 57 50 66 74 58 52 68 15 ;
element stdBrick 32 74 58 52 68 75 59 54 70 15 ;
element stdBrick 33 75 59 54 70 76 60 56 72 15 ;
element stdBrick 34 77 61 57 73 78 62 58 74 15 ;
element stdBrick 35 78 62 58 74 79 63 59 75 15 ;
element stdBrick 36 79 63 59 75 80 64 60 76 15 ;

#NVS::After3D3DOFElements


#NVS::Before3D3DOFPointSupports
fix 1 1 1 1;
fix 2 1 1 1;
fix 3 1 1 1;
fix 4 1 1 1;
fix 17 1 1 1;
fix 18 1 1 1;
fix 25 1 1 1;
fix 26 1 1 1;
fix 33 1 1 1;
fix 34 1 1 1;
fix 41 1 1 1;
fix 45 1 1 1;
fix 49 1 1 1;
fix 50 1 1 1;
fix 57 1 1 1;
fix 61 1 1 1;
fix 65 1 1 1;
fix 66 1 1 1;
fix 73 1 1 1;
fix 77 1 1 1;

#NVS::After3D3DOFPointSupports


#NVS::Before3D3DOFDamping

#NVS::After3D3DOFDamping


#NVS::Before3D3DOFLoads
pattern Plain 1 "Linear -factor 1.000000" {
load 1 0.000000 0.000000 -259814.937500;
load 2 0.000000 0.000000 -519629.875000;
load 3 0.000000 0.000000 -1039259.750000;
load 4 0.000000 0.000000 -519629.875000;
load 5 0.000000 0.000000 -519629.875000;
load 6 0.000000 0.000000 -1039259.750000;
load 7 0.000000 0.000000 -2078519.500000;
load 8 0.000000 0.000000 -1039259.750000;
load 9 0.000000 0.000000 -519629.875000;
load 10 0.000000 0.000000 -1039259.750000;
load 11 0.000000 0.000000 -2078519.500000;
load 12 0.000000 0.000000 -1039259.750000;
load 13 0.000000 0.000000 -259814.937500;
load 14 0.000000 0.000000 -519629.875000;
load 15 0.000000 0.000000 -1039259.750000;
load 16 0.000000 0.000000 -519629.875000;
load 17 0.000000 0.000000 -1039259.750000;
load 18 0.000000 0.000000 -519629.875000;
load 19 0.000000 0.000000 -2078519.500000;
load 20 0.000000 0.000000 -1039259.750000;
load 21 0.000000 0.000000 -2078519.500000;
load 22 0.000000 0.000000 -1039259.750000;
load 23 0.000000 0.000000 -1039259.750000;
load 24 0.000000 0.000000 -519629.875000;
load 25 0.000000 0.000000 -519629.875000;
load 26 0.000000 0.000000 -259814.937500;
load 27 0.000000 0.000000 -1039259.750000;
load 28 0.000000 0.000000 -519629.875000;
load 29 0.000000 0.000000 -1039259.750000;
load 30 0.000000 0.000000 -519629.875000;
load 31 0.000000 0.000000 -519629.875000;
load 32 0.000000 0.000000 -259814.937500;
load 33 0.000000 0.000000 -519629.875000;
load 34 0.000000 0.000000 -1039259.750000;
load 35 0.000000 0.000000 -1039259.750000;
load 36 0.000000 0.000000 -2078519.500000;
load 37 0.000000 0.000000 -1039259.750000;
load 38 0.000000 0.000000 -2078519.500000;
load 39 0.000000 0.000000 -519629.875000;
load 40 0.000000 0.000000 -1039269.750000;
load 41 0.000000 0.000000 -1039259.750000;
load 42 0.000000 0.000000 -2078519.500000;
load 43 0.000000 0.000000 -2078519.500000;
load 44 0.000000 0.000000 -1039259.750000;
load 45 0.000000 0.000000 -519629.875000;
load 46 0.000000 0.000000 -1039259.750000;
load 47 0.000000 0.000000 -1039259.750000;
load 48 0.000000 0.000000 -519629.875000;
load 49 0.000000 0.000000 -519629.875000;
load 50 0.000000 0.000000 -1039259.750000;
load 51 0.000000 0.000000 -1039259.750000;
load 52 0.000000 0.000000 -2078519.500000;
load 53 0.000000 0.000000 -1039259.750000;
load 54 0.000000 0.000000 -2078519.500000;
load 55 0.000000 0.000000 -519629.875000;
load 56 0.000000 0.000000 -1039259.750000;
load 57 0.000000 0.000000 -1039259.750000;
load 58 0.000000 0.000000 -2078519.500000;
load 59 0.000000 0.000000 -2078519.500000;
load 60 0.000000 0.000000 -1039259.750000;
load 61 0.000000 0.000000 -519629.875000;
load 62 0.000000 0.000000 -1039259.750000;
load 63 0.000000 0.000000 -1039259.750000;
load 64 0.000000 0.000000 -519629.875000;
load 65 0.000000 0.000000 -259814.937500;
load 66 0.000000 0.000000 -519629.875000;
load 67 0.000000 0.000000 -519629.875000;
load 68 0.000000 0.000000 -1039259.750000;
load 69 0.000000 0.000000 -519629.875000;
load 70 0.000000 0.000000 -1039259.750000;
load 71 0.000000 0.000000 -259814.937500;
load 72 0.000000 0.000000 -519629.875000;
load 73 0.000000 0.000000 -519629.875000;
load 74 0.000000 0.000000 -1039259.750000;
load 75 0.000000 0.000000 -1039259.750000;
load 76 0.000000 0.000000 -519629.875000;
load 77 0.000000 0.000000 -259814.937500;
load 78 0.000000 0.000000 -519629.875000;
load 79 0.000000 0.000000 -519629.875000;
load 80 0.000000 0.000000 -259814.937500;
}


#NVS::After3D3DOFLoads

#NVS::After3D3DOFOutput


#NVS::Before3D6DOFOutput
model basic -ndm 3 -ndf 6;

#NVS::BeforeNodes

#NVS::AfterNodes


#NVS::BeforePointSupports

#NVS::AfterPointSupports


#NVS::BeforeEqualDOFConstraints


#NVS::AfterEqualDOFConstraints


#NVS::BeforeRigidDiaphragmConstraints

#NVS::AfterRigidDiaphragmConstraints


#NVS::BeforeRigidLinkConstraints

#NVS::AfterRigidLinkConstraints


#NVS::BeforePointMasses

#NVS::AfterPointMasses


#NVS::BeforeMaterials
uniaxialMaterial Elastic 1 2.000000E+11 0.0 ;
uniaxialMaterial ElasticPP 2 2.000000E+11 0.1 -0.1 0.0 ;
uniaxialMaterial ElasticPPGap 3 2.000000E+11 2.500000E+8 0.01 0.01 ;
uniaxialMaterial ENT 4 2.500000E+1 ;
uniaxialMaterial Parallel 5 1 1 ;
uniaxialMaterial Series 6 1 1 ;
uniaxialMaterial Hardening 7 2.000000E+11 2.500000E+8 0.01 0.01 0.0 ;
uniaxialMaterial Concrete01 8 -2.750000E+7 -0.003 -5.500000E+6 -0.05 ;
uniaxialMaterial Concrete02 9 -2.750000E+7 -0.003 -5.500000E+6 -0.05 0.5 2.750000E+6 1.375000E+7 ;
uniaxialMaterial Concrete02 10 -3.575000E+7 -0.00286 -7.150000E+6 -0.0143 0.5 2.750000E+6 1.375000E+7 ;
uniaxialMaterial Concrete03 11 -2.750000E+7 -0.003 -5.500000E+6 -0.05 0.5 2.500000E+7 0.015 5.000000E+6 1.0 0.02 ;
uniaxialMaterial Steel01 12 2.500000E+8 2.000000E+11 0.01 0.0 1.0 0.0 1.0 ;
uniaxialMaterial Steel02 13 2.500000E+8 2.000000E+11 0.01 10.0 0.925 0.15 0.0 1.0 0.0 1.0 0.0 ;
uniaxialMaterial Hysteretic 14 2.500000E+8 0.002 3.250000E+8 0.004 3.375000E+8 0.006 -2.500000E+8 -0.002 -3.250000E+8 -0.004 -3.375000E+8 -0.006 1.0 1.0 0.0 0.0 0.5 ;
nDMaterial ElasticIsotropic 15 2.000000E+11 0.3 ;
nDMaterial PlaneStress 16 15 ;
nDMaterial PlateFiber 17 15 ;

#NVS::AfterMaterials


#NVS::BeforeLineSections

#NVS::AfterLineSections


#NVS::BeforeShellSections

#NVS::AfterShellSections


#NVS::BeforeLineTransformations

#NVS::AfterLineTransformations


#NVS::BeforeLines

#NVS::AfterLines

#NVS::BeforeShells

#NVS::AfterShells


#NVS::BeforeMultiPointElements

#NVS::AfterMultiPointElements



#NVS::BeforeDamping

#NVS::AfterDamping


#NVS::BeforeRecorders
recorder Node -file Output/Displacements.txt -time -nodeRange 1 80 -dof 1 2 3 4 5 6 disp;
recorder Node -file Output/Reactions.txt -time -node 1 2 3 4 17 18 25 26 33 34 41 45 49 50 57 61 65 66 73 77 -dof 1 2 3 4 5 6 reaction;
recorder Element -file Output/Solid8NodeForces.txt -time -eleRange 1 36 forces;
recorder Element -file Output/Solid8NodeStresses.txt -time -eleRange 1 36 stresses;

#NVS::AfterRecorders


#NVS::BeforeLoads
pattern Plain 2 "Linear -factor 1.000000" {
}


#NVS::AfterLoads

#NVS::BeforeAnalysisCase
constraints Plain;
numberer Plain;
system BandGeneral;
test EnergyIncr 1.000000E-009 10;
algorithm Newton;
integrator LoadControl 1.000000 1 1.000000 1.000000;
analysis Static;
set AR [analyze 1];



#NVS::AfterAnalysisCase

#NVS::End

Opensees

OK so I've settled on opensees for the time being to teach myself FEM. Probably not the best tool to learn FEM (it's a serious analytical package with a command line interface so bring your own GUI).

But I really like the models it provides and some of the examples other researchers have posted:

OpenSees examples at UCSD

Sunday, May 8, 2011

Finite Element Analysis

Ok..so I am interested in the Finite Element Method...partly because it is linked to simulation, and also partly because it seems useful to solve many types of problems.

So I am trying to find a good FEM simulator.

PhD Thesis

Here is a link to my thesis, hosted on Google Docs:

http://bit.ly/koWiFC



ABSTRACT

Augmented Reality Interfaces for Procedural Tasks


Procedural tasks involve people performing established sequences of activities while interacting with objects in the physical environment to accomplish particular goals. These tasks span almost all aspects of human life and vary greatly in their complexity. For some simple tasks, little cognitive assistance is required beyond an initial learning session in which a person follows one-time compact directions, or even intuition, to master a sequence of activities. In the case of complex tasks, procedural assistance may be continually required, even for the most experienced users. Approaches for rendering this assistance employ a wide range of written, audible, and computer-based technologies.

This dissertation explores an approach in which procedural task assistance is rendered using augmented reality. Augmented reality integrates virtual content with a user’s natural view of the environment, combining real and virtual objects interactively, and aligning them with each other. Our thesis is that an augmented reality interface can allow individuals to perform procedural tasks more quickly while exerting less effort and making fewer errors than other forms of assistance. This thesis is supported by several significant contributions yielded during the exploration of the following research themes:

What aspects of AR are applicable and beneficial to the procedural task problem? In answering this question, we developed two prototype AR interfaces that improve procedural task accomplishment. The first prototype was designed to assist mechanics carrying out maintenance procedures under field conditions. An evaluation involving professional mechanics showed our prototype reduced the time required to locate procedural tasks and resulted in fewer head movements while transitioning between tasks. Following up on this work, we constructed another prototype that focuses on providing assistance in the underexplored psychomotor phases of procedural tasks. This prototype presents dynamic and prescriptive forms of instruction and was evaluated using a demanding and realistic alignment task. This evaluation revealed that the AR prototype allowed participants to complete the alignment more quickly and accurately than when using an enhanced version of currently employed documentation systems.

How does the user interact with an AR application assisting with procedural tasks? The application of AR to the procedural task problem poses unique user interaction challenges. To meet these challenges, we present and evaluate a novel class of user interfaces that leverage naturally occurring and otherwise unused affordances in the native environment to provide a tangible user interface for augmented reality applications. This class of techniques, which we call Opportunistic Controls, combines hand gestures, overlaid virtual widgets, and passive haptics to form an interface that was proven effective and intuitive during quantitative evaluation. Our evaluation of these techniques includes a qualitative exploration of various preferences and heuristics for Opportunistic Control-based designs.

Sunday, May 1, 2011