USER'S GUIDE TO THE THERMO-MECHANICAL MODEL Created: July 30, 1998 Last modified: January 15, 2001 by Bonny Lee I. INTRODUCTION The thermo-mechanical model (which I'll abbreviate to TMM from now on) is a model which was written in the summer of 1996 by Philippe Fullsack, for Chris Beaumont and Becky Jamieson. The TMM is written in Fortran and runs on Cobra, which is our HP 735 workstation. The TMM is based on a previous model, called "microfem", which is a finite element model developed by Philippe Fullsack. (There are many different versions of microfem around, so perhaps it would be more accurate to say the TMM is based on one version of a family of models called "microfem".) If some of the inputs in the input files seem to be unnecessary, it's probably because they were originally used in some previous version microfem but are not needed in the TMM. Another thing to remember is that the TMM was developed in a hurry, under a tight deadline. So if you run into some odd inconsistencies within the code, that's why. This user's guide tells you the basics on how to use the TMM. There is also a small section on how to compile the TMM in case you make some changes to the code. ============================================================================ II. Running the TMM II.1 Overview The TMM runs on the SP, which runs AIX (as of Jan 15/01, AIX 4.3), which is IBM's version of Unix. It usually runs in non-interactive mode, submitted using the LoadLeveler software. The TMM expects to find all its input files in the current directory, and also puts all its output files in the current directory. Usually I have a separate directory for each different model run. The output files are viewed interactively using the postprocessor software (resx), which runs on the SP but requires a graphic (X windows) display. II.1 Required input The first step in running the TMM is to prepare the input files. Usually you won't prepare all these files from scratch. The best thing to do is to copy a set of input files from a previous model run, and then modify them. Here is a brief summary of the required input files: Control files: microfem_master_i - determines run mode or postprocess mode microfem_c_i - overall control file for model run (determines number of timesteps, length of timesteps, when output is written, and so on) X_i - controls X window output during run microfem_compile_i - turns scripting of user actions on or off microfem_exhum_i - controls when exhumation maps are output microfem_restartc_i - determines whether this run is a restart of a previous run (Numerical things) microfem_tuning_i - various parameters controlling numerical techniques NL_i - various parameters (includes max. iterations per timestep, max error value for convergence, cohesion pressure, etc.) check_numerical_errors_i - parameters to do with numerical errors, including a flag to save information to an output file (Miscellaneous who knows what) rewind_beamn_i Export_i Import_i - The purpose of these three files isn't quite clear. However, they are required. Model setup files (set physical properties and geometry, etc): save_grid - definition of the thermal grid microfem_b_i - information about beam geometry, strength, loading microfem_e_i - erosion and sedimentation control mecprop_i - defines mechanical properties of materials mecset_E_1_i - defines placement of mechanical materials on Eulerian grid mecset_L_1_i - defines placement of mechanical materials on Lagrangian grid microfem_g0_i - velocity boundary conditions on Eulerian grid microfem_g1_i - initial position of particles to be traced on Lagrangian grid thermprop_i - defines thermal properties of materials therset_E_2_i - defines placement of thermal materials on Eulerian grid therset_E_2_radio_i - defines radiogenic heat production for thermal materials on Eulerian grid therset_L_1_i - defines placement of thermal materials on Lagrangian grid therset_L_1_radio_i - defines radiogenic heat production for thermal materials on Lagrangian grid The detailed descriptions of all the required input files are in the file "TMM_input_files.txt". II.2. Running the model Once you've prepared the input files and placed them in your model run directory, you're ready to start up the TMM. [Add more info here about running jobs via LoadLeveler] =========================================================================== II.3. Viewing the output - postprocessing After running the TMM on the SP, the model output is viewed using a graphical postprocessing program. The TMM postprocessor uses XWindow graphics and requires an X display (either a Unix workstation console, a graphics X terminal, or a PC running an X server program like Exceed). Currently the TMM postprocessor runs on Coral (a Sun Ultra workstation), so the output files must be downloaded from the SP to Coral in order to postprocess them. II.3.1 REQUIRED FILES The TMM postprocessor requires all the input files that the TMM model code uses, plus the output files microfem_g0_s, microfem_g1_s, microfem_gt_s. It also requires these files: microfem_compile_i - contains one number 0 = read actions from a file. This is the non-interactive, or "script" mode. The postprocessor will read a script (in the file microfem_compile_s) to determine what to do. 1 = record actions. This is the interactive mode. The postprocessor will require input from the user (by keyboard and mouse). The user actions will be recorded in microfem_compile_s. If the file microfem_compile_s already exists, the script will be appended to the end of it. microfem_compile_s - contains the script for postprocessing You only need this file if you have a "0" in microfem_compile_i (see above). See section ??? for a description of the contents of this file. texting_i - contains information used to label the model plots generated by the postprocessor. Line 1: itexting itexting = 0 means don't label the plots = 1 means the postprocessor will label each plot with the model name (supplied by user), the time step, the type of grid, type of field, and type of vector being plotted. Line 2: mch_text Format: A10 mch_text = model name (up to 10 characters) Line 2: ignored Line 3: x_mch, y_mch, s_mch x_mch = x coordinate for model name label (lower left corner of label), in user units y_mch = y coordinate for model name label (lower left corner of label), in user units s_sch = character size for model name label (s_sch = 3 gives 10 point Helvetica) Line 4: ignored Line 5: x_pch, y_pch, s_pch Currently not used, but are intended to be the x coordinate, y coordinate, and character size for the "purpose" label. Line 6: ignored Line 7: ask_com_ch Currently not used. I think this is intended to be a flag for a "comment" label. Line 8: ignored Line 9: x_comch, y_comch, s_comch Currently not used. Intended to be x coordinate, y coordinate, and character size for "comment" label. Line 10: ignored Line 11: x_tch, y_tch, s_tch Currently not used. Intended to be x coordinate, y coordinate, and character size for time label. Line 12: ignored Line 13: x_tsch, y_tsch, s_tsch x_tsch = x coordinate for timestep label (lower left corner of label), in user units y_tsch = y coordinate for timestep label (lower left corner of label), in user units s_tsch = character size for timestep label (s_tsch = 3 gives 10 point Helvetica) Line 14: ignored Line 15: x_gch, y_gch, s_gch x_gch = x coordinate for grid label (lower left corner of label), in user units y_gch = y coordinate for grid label (lower left corner of label), in user units s_gch = character size for grid label (s_gch = 3 gives 10 point Helvetica) Line 16: ignored Line 17: x_fch, y_fch, s_fch x_fch = x coordinate for field label (lower left corner of label), in user units y_fch = y coordinate for field label (lower left corner of label), in user units s_fch = character size for field label (s_fch = 3 gives 10 point Helvetica) Line 18: ignored Line 19: x_vch, y_vch, s_vch x_vch = x coordinate for vector label (lower left corner of label), in user units y_vch = y coordinate for vector label (lower left corner of label), in user units s_vch = character size for vector label (s_vch = 3 gives 10 point Helvetica) II.3.2 Running the postprocessor interactively Make sure your DISPLAY environment variable is set correctly. For example, if you are using the C-shell and you are using the X-terminal "gator" for your display, type "setenv DISPLAY gator:0.0". You should also type "xhost +" on Adder to allow access to the X display. Change directory (cd) into the directory where your model input files and output files are. Make sure the file "microfem_master_i" contains the value "1" (for plotting). Run the postprocessor by typing in the name of the executable file (e.g. "~/postprocessor/resx") In the following text, what you see typed on the screen is indicated with a | on the left-hand side. You will see: | some TEXTING added to the postprocessor by Philippe | june 15 2000 | you may easily rework this into something fancier | new files introduced : | texting.h : an include file for compilation | file texting_i data for placing text in plots | this is locally unit 223 in the code | file 222 or font.file can either be manipulated | by hand or written automatically | the second solution is shown here | x and y in texting_i are in absolute units | thie is trivial to remap after zooming in out | or using the fixed frame : just reinterpret | x and y as percentages (some probably negative) | and do a linear mapping | the text boxes introduced here for a quick example | are : | a model box : name of model | a purpose box: why did you run the model ? | time and time step boxes | field grid and vector boxes | and a comment box | the comment box may be filled either interactively | or not. typically what do you say now about | what you see | i have not activated the purpose and comment boxes | here | i will put the tstep (or any numerical info) | here when i have time | PAUSE: To resume execution, type: go | Any other input will terminate the program. At this point, the program will pause. Type "go" to continue. | Execution resumed after PAUSE. | 1=1/3 formul 2 = 1/2 formul and bulk viscosity and dt You need to type in 3 numbers: iformul, bulk viscosity and dtstep For iformul, use 1 For bulk viscosity, use an appropriate number (1e32) For dtstep, use the number of seconds in a timestep Type these numbers on one line with a space in between, like this: 1 1e+32 4.73e+11 | 1e+38= 1.0000000000000D+38 | coupled run | nstep is !! 5001 | PAUSE: To resume execution, type: go | Any other input will terminate the program. Type "go" to continue. | Execution resumed after PAUSE. | TIME INITIALIZATION : 0. 473041372198.41 | 0 0 0 Now the program will show a menu with these choices: Continue time(Myr) temperature (C) dyn pressure (kB) x-location (km) y-location (km) current depth static pressure(kB) x-deformation y-deformation strain rate set x set y set z kidding Click on "Continue" | we leave... | BEGIN TIME STEP 1TOT= 5001 | enter lagrangian topology Type in igx and igy (number of cells in X and Y direction in the Lagrangian grid). | ******************************************* | ** plot only mode . X graphics (J.BRAUN) | ******************************************* | BEGIN TIME STEP 2TOT= 5001 | reading grid0 information for step 2 | end read g0s | end grid0 information for step 2 | reading grid1 information for step 2 | end read g1s | end grid1 information for step 2 | calling plotout (L1 E1) Now you'll see the following menu on the screen: Continue Set field Set grid Set vector Show plot quantities Plot (above) Plot stress tensor Plot strn rt tensor Plot curve "Normal" plotting ... ... ... | bye | done | reading gts | (kstep read is : 2...) | end read gts | reading peaks_s | --------------------------------------------------- | ** PTt new plotting style *** step = 2 | --------------------------------------------------- | 1 temperature | 2 material colors | 3 quit II.3.3 Menu hierarchy for the postprocessor