[cig-commits] r20423 - in seismo/3D/GEOCUBIT/trunk: . doc geocubitlib

carltape at geodynamics.org carltape at geodynamics.org
Wed Jun 27 15:42:45 PDT 2012


Author: carltape
Date: 2012-06-27 15:42:44 -0700 (Wed, 27 Jun 2012)
New Revision: 20423

Added:
   seismo/3D/GEOCUBIT/trunk/doc/geocubit_manual.pdfsync
Modified:
   seismo/3D/GEOCUBIT/trunk/GEOCUBIT.py
   seismo/3D/GEOCUBIT/trunk/doc/geocubit_manual.tex
   seismo/3D/GEOCUBIT/trunk/geocubitlib/exportlib.py
   seismo/3D/GEOCUBIT/trunk/geocubitlib/hex_metric.py
   seismo/3D/GEOCUBIT/trunk/geocubitlib/mesh_volume.py
   seismo/3D/GEOCUBIT/trunk/geocubitlib/quality_log.py
Log:
checking E. Casarotti's updates from dropbox 27-June-2012


Modified: seismo/3D/GEOCUBIT/trunk/GEOCUBIT.py
===================================================================
--- seismo/3D/GEOCUBIT/trunk/GEOCUBIT.py	2012-06-27 21:35:50 UTC (rev 20422)
+++ seismo/3D/GEOCUBIT/trunk/GEOCUBIT.py	2012-06-27 22:42:44 UTC (rev 20423)
@@ -4,7 +4,7 @@
 this file is part of GEOCUBIT
 
 Created by Emanuele Casarotti 
-Copyright (c) 2008 Istituto Nazionale di Geofisica e Vulcanologia 
+Copyright (c) 2011 Istituto Nazionale di Geofisica e Vulcanologia 
 
 ---------------------------------------------------------------------------
  GEOCUBIT is free software: you can redistribute it and/or modify

Added: seismo/3D/GEOCUBIT/trunk/doc/geocubit_manual.pdfsync
===================================================================
--- seismo/3D/GEOCUBIT/trunk/doc/geocubit_manual.pdfsync	                        (rev 0)
+++ seismo/3D/GEOCUBIT/trunk/doc/geocubit_manual.pdfsync	2012-06-27 22:42:44 UTC (rev 20423)
@@ -0,0 +1,1788 @@
+geocubit_manual
+version 1
+(nameref.sty
+(refcount.sty
+)
+(gettitlestring.sty
+(gettitlestring.cfg
+)
+)
+)
+(.geocubit_manual.out
+)
+(.geocubit_manual.out
+)
+l 0 41
+l 1 41
+l 2 41
+l 3 41
+l 4 41
+l 5 41
+l 6 41
+l 7 41
+l 8 41
+l 9 41
+l 10 41
+l 11 41
+l 12 41
+l 13 41
+l 14 41
+l 15 42
+l 16 42
+l 17 42
+l 18 42
+l 19 42
+l 20 42
+l 21 2
+l 22 2
+l 23 2
+l 24 3
+l 25 3
+l 26 3
+l 27 4
+l 28 4
+l 29 4
+l 30 4
+l 31 4
+l 32 4
+l 33 4
+l 34 5
+l 35 5
+l 36 5
+l 37 5
+l 38 5
+l 39 5
+l 40 5
+l 41 6
+l 42 6
+l 43 6
+l 44 7
+l 45 7
+l 46 7
+l 47 7
+l 48 7
+l 49 7
+l 50 7
+l 51 8
+l 52 8
+l 53 8
+l 54 8
+l 55 8
+l 56 8
+l 57 8
+l 58 9
+l 59 9
+l 60 9
+l 61 9
+l 62 9
+l 63 9
+l 64 9
+l 65 10
+l 66 10
+l 67 10
+l 68 10
+l 69 10
+l 70 10
+l 71 10
+l 72 11
+l 73 11
+l 74 11
+l 75 12
+l 76 12
+l 77 12
+l 78 13
+l 79 13
+l 80 13
+l 81 13
+l 82 13
+l 83 13
+l 84 13
+l 85 14
+l 86 14
+l 87 14
+l 88 14
+l 89 14
+l 90 14
+l 91 14
+l 92 15
+l 93 15
+l 94 15
+l 95 15
+l 96 15
+l 97 15
+l 98 15
+l 99 16
+l 100 16
+l 101 16
+l 102 16
+l 103 16
+l 104 16
+l 105 16
+l 106 17
+l 107 17
+l 108 17
+l 109 17
+l 110 17
+l 111 17
+l 112 17
+l 113 18
+l 114 18
+l 115 18
+l 116 18
+l 117 18
+l 118 18
+l 119 18
+l 120 19
+l 121 19
+l 122 19
+l 123 19
+l 124 19
+l 125 19
+l 126 19
+l 127 20
+l 128 20
+l 129 20
+l 130 20
+l 131 20
+l 132 20
+l 133 20
+l 134 21
+l 135 21
+l 136 21
+l 137 22
+l 138 22
+l 139 22
+l 140 43
+l 141 43
+l 142 43
+l 143 43
+l 144 43
+l 145 43
+l 146 43
+l 147 43
+l 148 43
+l 149 43
+l 150 43
+l 151 43
+l 152 43
+l 153 43
+s 1
+p 153 4736286 50644704
+p 149 4736286 50644704
+p 150 4736286 50644704
+p 151 4736286 49530837
+p 141 4736286 50644704
+p 143 4736286 49465056
+p 144 4736286 49465056
+p 145 4736286 48678624
+p 140 4736286 47040224
+p 5 12334523 43450440
+p 2 12334523 43450440
+p 3 11975713 43450440
+p 1 11975713 43450440
+p 7 15755887 41462614
+p 8 15755887 41462614
+p 9 15755887 41462614
+p 11 15755887 42104864
+p 10 15755887 41462614
+p 12 16149103 41462614
+p 14 16450632 39857776
+p 17 4736286 36810553
+p 16 4736286 36810553
+p 18 4736286 36810553
+p 19 4736286 36810553
+p 20 4736286 37990201
+p 21 5806608 35205715
+p 22 4736286 35205715
+p 23 32956737 35205715
+p 24 5806608 33600877
+p 25 4736286 33600877
+p 26 32956737 33600877
+p 27 7447770 32709587
+p 29 5806608 32709587
+p 33 33121485 32709587
+p 34 7447770 31818297
+p 36 5806608 31818297
+p 40 33121485 31818297
+p 41 5806608 30213459
+p 42 4736286 30213459
+p 43 32956737 30213459
+p 44 7447770 29322169
+p 46 5806608 29322169
+p 50 33121485 29322169
+p 51 7447770 28430879
+p 53 5806608 28430879
+p 57 33121485 28430879
+p 58 7447770 27539589
+p 60 5806608 27539589
+p 64 33121485 27539589
+p 65 7447770 26648299
+p 67 5806608 26648299
+p 71 33121485 26648299
+p 72 5806608 25043461
+p 73 4736286 25043461
+p 74 32956737 25043461
+p 75 5806608 23438623
+p 76 4736286 23438623
+p 77 32956737 23438623
+p 78 7447770 22547333
+p 80 5806608 22547333
+p 84 33121485 22547333
+p 85 7447770 21656043
+p 87 5806608 21656043
+p 91 33121485 21656043
+p 92 7447770 20764753
+p 94 5806608 20764753
+p 98 33121485 20764753
+p 99 7447770 19873463
+p 101 5806608 19873463
+p 105 33121485 19873463
+p 106 7447770 18982173
+p 108 5806608 18982173
+p 112 33121485 18982173
+p 113 7447770 18090883
+p 115 5806608 18090883
+p 119 33121485 18090883
+p 120 7447770 17199593
+p 122 5806608 17199593
+p 126 33121485 17199593
+p 127 7447770 16308303
+p 129 5806608 16308303
+p 133 33121485 16308303
+p 134 5806608 14703465
+p 135 4736286 14703465
+p 136 32956737 14703465
+p 137 5806608 13098627
+p 138 4736286 13098627
+p 139 32956737 11316047
+p 147 4736286 6027778
+p 148 4736286 6027778
+l 154 45
+l 155 45
+l 156 45
+l 157 47
+l 158 52
+l 159 52
+(omscmr.fd
+)
+l 160 52
+l 161 52
+l 162 52
+l 163 53
+l 164 53
+l 165 53
+l 166 53
+l 167 53
+l 168 54
+l 169 54
+l 170 54
+l 171 54
+l 172 54
+l 173 56
+l 174 56
+l 175 56
+l 176 56
+l 177 56
+l 178 60
+l 179 64
+l 180 64
+l 181 64
+l 182 64
+l 183 64
+l 184 64
+l 185 64
+l 186 64
+l 187 64
+l 188 64
+l 189 64
+l 190 64
+l 191 64
+s 2
+p 191 4736286 6027778
+p 188 4736286 50644704
+p 189 4736286 50644704
+p 190 4736286 49530837
+p 180 4736286 50644704
+p 182 4736286 49465056
+p 183 4736286 49465056
+p 184 4736286 48678624
+p 179 4736286 47040224
+p 156 4736286 46319328
+p 155 4736286 46319328
+p 157 4736286 44717572
+p 162 6530338 39474690
+p 160 6530338 39474690
+p 161 4736286 39474690
+p 158 4736286 39474690
+p 159 6171528 39474690
+p 167 6530338 37993576
+p 165 6530338 37993576
+p 166 4736286 37993576
+p 163 4736286 37993576
+p 164 6171528 37993576
+p 172 6530338 36512462
+p 170 6530338 36512462
+p 171 4736286 36512462
+p 168 4736286 36512462
+p 169 6171528 36512462
+p 177 6530338 34140058
+p 175 6530338 34140058
+p 176 4736286 34140058
+p 173 4736286 34140058
+p 174 6171528 34140058
+p 178 4736286 30679756
+p 186 4736286 6027778
+p 187 4736286 6027778
+l 192 65
+l 193 65
+l 194 65
+l 195 68
+l 196 68
+l 197 68
+l 198 70
+l 199 73
+l 200 73
+l 201 73
+l 202 73
+l 203 73
+l 204 74
+l 205 74
+l 206 74
+l 207 74
+l 208 74
+l 209 75
+l 210 75
+l 211 75
+l 212 75
+l 213 75
+l 214 78
+l 215 80
+l 216 80
+l 217 80
+l 218 80
+l 219 80
+l 220 83
+l 221 83
+l 222 83
+l 223 85
+(t1cmtt.fd
+)
+l 224 86
+l 225 86
+l 226 86
+l 227 87
+l 228 90
+l 229 92
+l 230 92
+l 231 92
+l 232 93
+l 233 94
+l 234 95
+l 235 96
+l 236 97
+l 237 101
+l 238 101
+l 239 101
+l 240 101
+l 241 101
+l 242 101
+l 243 101
+l 244 101
+l 245 101
+l 246 101
+l 247 101
+l 248 101
+l 249 101
+s 3
+p 249 4736286 6027778
+p 246 4736286 50644704
+p 247 4736286 50644704
+p 248 4736286 49530837
+p 238 4736286 50644704
+p 240 4736286 49465056
+p 241 4736286 49465056
+p 242 4736286 48678624
+p 237 4736286 47040224
+p 194 4736286 46319328
+p 193 4736286 46319328
+p 197 4736286 44691358
+p 196 4736286 44691358
+p 198 4736286 43336721
+p 203 6530338 41658999
+p 201 6530338 41658999
+p 202 4736286 41658999
+p 199 4736286 41658999
+p 200 6171528 41658999
+p 208 6530338 40177885
+p 206 6530338 40177885
+p 207 4736286 40177885
+p 204 4736286 40177885
+p 205 6171528 40177885
+p 213 6530338 38696771
+p 211 6530338 38696771
+p 212 4736286 38696771
+p 209 4736286 38696771
+p 210 6171528 38696771
+p 214 4736286 37019049
+p 219 6530338 35537935
+p 217 6530338 35537935
+p 218 4736286 35537935
+p 215 4736286 35537935
+p 216 6171528 35537935
+p 222 4736286 33616513
+p 221 4736286 33616513
+p 223 4736286 32261876
+p 227 6530338 30584154
+p 225 6530338 30584154
+p 226 4736286 30584154
+p 224 4736286 30584154
+p 228 4736286 28906432
+p 232 6530338 27228710
+p 230 6530338 27228710
+p 231 4736286 27228710
+p 229 4736286 27228710
+p 233 6530338 26337420
+p 234 6530338 25446130
+p 235 6530338 24554840
+p 236 6530338 23663550
+p 244 4736286 6027778
+p 245 4736286 6027778
+l 250 102
+l 251 102
+l 252 102
+l 253 104
+l 254 104
+l 255 104
+l 256 106
+l 257 106
+l 258 106
+l 259 106
+l 260 106
+l 261 107
+l 262 107
+l 263 107
+l 264 108
+l 265 111
+l 266 111
+l 267 111
+l 268 111
+l 269 111
+l 270 112
+l 271 112
+l 272 112
+l 273 113
+l 274 117
+l 275 117
+l 276 117
+l 277 118
+l 278 121
+l 279 121
+l 280 121
+l 281 121
+l 282 121
+l 283 122
+l 284 122
+l 285 122
+l 286 123
+l 287 128
+l 288 128
+l 289 128
+l 290 128
+l 291 128
+l 292 129
+l 293 129
+l 294 129
+l 295 130
+l 296 134
+l 297 136
+l 298 136
+l 299 136
+l 300 136
+l 301 136
+l 302 137
+l 303 137
+l 304 137
+l 305 138
+l 306 143
+l 307 143
+l 308 143
+l 309 143
+l 310 143
+l 311 144
+l 312 144
+l 313 144
+l 314 145
+l 315 149
+l 316 149
+l 317 149
+l 318 149
+l 319 149
+l 320 149
+l 321 149
+l 322 151
+l 323 151
+l 324 151
+l 325 151
+l 326 151
+l 327 151
+l 328 151
+l 329 151
+l 330 151
+l 331 151
+l 332 151
+l 333 151
+l 334 151
+l 335 151
+l 336 152
+l 337 152
+l 338 153
+l 339 153
+l 340 153
+l 341 153
+l 342 153
+l 343 153
+l 344 153
+l 345 153
+l 346 153
+l 347 153
+l 348 153
+l 349 153
+l 350 153
+l 351 154
+l 352 154
+l 353 154
+l 354 154
+l 355 154
+l 356 154
+l 357 154
+l 358 157
+l 359 157
+l 360 157
+l 361 159
+l 362 162
+l 363 162
+l 364 162
+l 365 164
+l 366 164
+l 367 164
+l 368 164
+l 369 164
+l 370 165
+l 371 165
+l 372 165
+l 373 166
+l 374 171
+l 375 171
+l 376 171
+l 377 171
+l 378 171
+l 379 172
+l 380 172
+l 381 172
+l 382 173
+l 383 175
+l 384 175
+l 385 179
+l 386 179
+l 387 179
+l 388 179
+l 389 179
+l 390 180
+l 391 180
+l 392 180
+l 393 181
+l 394 182
+l 395 182
+l 396 182
+l 397 182
+l 398 182
+l 399 182
+l 400 182
+l 401 182
+l 402 182
+l 403 182
+l 404 182
+l 405 182
+l 406 182
+s 4
+p 406 4736286 6027778
+p 403 4736286 50644704
+p 404 4736286 50644704
+p 405 4736286 49530837
+p 395 4736286 50644704
+p 397 4736286 49465056
+p 398 4736286 49465056
+p 399 4736286 48678624
+p 394 4736286 47040224
+p 360 4736286 46319328
+p 358 4736286 46319328
+p 252 4736286 45598432
+p 251 4736286 45598432
+p 255 4736286 43970462
+p 254 4736286 43970462
+p 260 6530338 42615825
+p 258 6530338 42615825
+p 259 4736286 42615825
+p 256 4736286 42615825
+p 257 6171528 42615825
+p 264 8109102 40938103
+p 262 8109102 40938103
+p 263 6530338 40938103
+p 261 6530338 40938103
+p 269 6530338 39260381
+p 267 6530338 39260381
+p 268 4736286 39260381
+p 265 4736286 39260381
+p 266 6171528 39260381
+p 273 8109102 37582659
+p 271 8109102 37582659
+p 272 6530338 37582659
+p 270 6530338 37582659
+p 276 4736286 35661237
+p 275 4736286 35661237
+p 277 4736286 34306600
+p 282 6530338 32628878
+p 280 6530338 32628878
+p 281 4736286 32628878
+p 278 4736286 32628878
+p 279 6171528 32628878
+p 286 8109102 30951156
+p 284 8109102 30951156
+p 285 6530338 30951156
+p 283 6530338 30951156
+p 291 6530338 29273434
+p 289 6530338 29273434
+p 290 4736286 29273434
+p 287 4736286 29273434
+p 288 6171528 29273434
+p 295 8109102 27595712
+p 293 8109102 27595712
+p 294 6530338 27595712
+p 292 6530338 27595712
+p 296 4736286 25917990
+p 301 6530338 24436876
+p 299 6530338 24436876
+p 300 4736286 24436876
+p 297 4736286 24436876
+p 298 6171528 24436876
+p 305 8109102 22759154
+p 303 8109102 22759154
+p 304 6530338 22759154
+p 302 6530338 22759154
+p 310 6530338 21081432
+p 308 6530338 21081432
+p 309 4736286 21081432
+p 306 4736286 21081432
+p 307 6171528 21081432
+p 314 8109102 19403710
+p 312 8109102 19403710
+p 313 6530338 19403710
+p 311 6530338 19403710
+p 361 6530338 17725988
+p 364 4736286 14913276
+p 363 4736286 14913276
+p 369 6530338 13558639
+p 367 6530338 13558639
+p 368 4736286 13558639
+p 365 4736286 13558639
+p 366 6171528 13558639
+p 373 8109102 11880917
+p 371 8109102 11880917
+p 372 6530338 11880917
+p 370 6530338 11880917
+p 378 6530338 10203195
+p 376 6530338 10203195
+p 377 4736286 10203195
+p 374 4736286 10203195
+p 375 6171528 10203195
+p 382 8109102 8525473
+p 380 8109102 8525473
+p 381 6530338 8525473
+p 379 6530338 8525473
+p 401 4736286 6027778
+p 402 4736286 6027778
+l 407 185
+l 408 185
+l 409 185
+l 410 187
+l 411 190
+l 412 190
+l 413 190
+l 414 190
+l 415 190
+l 416 191
+l 417 191
+l 418 191
+l 419 192
+l 420 194
+l 421 195
+l 422 197
+l 423 197
+l 424 197
+l 425 197
+l 426 197
+l 427 198
+l 428 198
+l 429 198
+l 430 199
+l 431 201
+l 432 201
+l 433 205
+l 434 205
+l 435 205
+l 436 205
+l 437 205
+l 438 205
+l 439 205
+l 440 206
+l 441 206
+l 442 206
+l 443 206
+l 444 206
+l 445 206
+l 446 206
+l 447 206
+l 448 207
+l 449 207
+l 450 207
+l 451 207
+l 452 207
+l 453 207
+l 454 207
+l 455 208
+l 456 208
+l 457 208
+l 458 208
+l 459 208
+l 460 211
+l 461 211
+l 462 211
+l 463 211
+l 464 211
+l 465 211
+l 466 211
+l 467 211
+l 468 211
+l 469 211
+l 470 211
+l 471 211
+l 472 211
+l 473 211
+l 474 211
+l 475 211
+l 476 211
+l 477 211
+l 478 211
+s 5
+p 478 4736286 6027778
+p 475 4736286 50644704
+p 476 4736286 50644704
+p 477 4736286 49530837
+p 467 4736286 50644704
+p 469 4736286 49465056
+p 470 4736286 49465056
+p 471 4736286 48678624
+p 466 4736286 47040224
+p 465 4736286 47040224
+p 464 4736286 47040224
+p 315 4736286 47040224
+p 316 4736286 47040224
+p 322 8574223 38128105
+p 320 8574223 38128105
+p 321 8215413 38128105
+p 319 8215413 38128105
+p 331 8574223 45791660
+p 332 8574223 45791660
+p 323 8574223 38128105
+p 324 8574223 38128105
+p 326 8574223 38128105
+p 327 8574223 38128105
+p 329 8574223 38128105
+p 330 8574223 38128105
+p 328 8574223 38128105
+p 335 8574223 37236815
+p 333 12612061 37236815
+p 336 17659778 38128105
+p 337 17659778 39019395
+p 346 17659778 47040224
+p 347 17659778 47040224
+p 338 17659778 38128105
+p 339 17659778 38128105
+p 341 17659778 38128105
+p 342 17659778 38128105
+p 344 17659778 38128105
+p 345 17659778 38128105
+p 343 17659778 38128105
+p 350 17659778 37236815
+p 348 23502889 37236815
+p 355 4736286 35502730
+p 356 8022359 35502730
+p 357 8022359 36394020
+p 462 4736286 31720892
+p 460 4736286 31720892
+p 384 6530338 30999996
+p 389 6530338 29482571
+p 387 6530338 29482571
+p 388 4736286 29482571
+p 385 4736286 29482571
+p 386 6171528 29482571
+p 393 8109102 27884998
+p 391 8109102 27884998
+p 392 6530338 27884998
+p 390 6530338 27884998
+p 409 4736286 25097470
+p 408 4736286 25097470
+p 410 4736286 23742833
+p 415 6530338 21504010
+p 413 6530338 21504010
+p 414 4736286 21504010
+p 411 4736286 21504010
+p 412 6171528 21504010
+p 419 8109102 19015147
+p 417 8109102 19015147
+p 418 6530338 19015147
+p 416 6530338 19015147
+p 420 6530338 16526284
+p 421 6530338 14743704
+p 426 6530338 11533442
+p 424 6530338 11533442
+p 425 4736286 11533442
+p 422 4736286 11533442
+p 423 6171528 11533442
+p 430 8109102 9044579
+p 428 8109102 9044579
+p 429 6530338 9044579
+p 427 6530338 9044579
+p 473 4736286 6027778
+p 474 4736286 6027778
+l 479 214
+l 480 214
+l 481 214
+l 482 214
+l 483 214
+l 484 215
+l 485 215
+l 486 215
+l 487 216
+l 488 218
+l 489 218
+l 490 221
+l 491 221
+l 492 221
+l 493 221
+l 494 221
+l 495 221
+l 496 221
+l 497 221
+l 498 221
+l 499 221
+l 500 221
+l 501 221
+l 502 221
+l 503 221
+l 504 221
+l 505 221
+s 6
+p 505 4736286 6027778
+p 502 4736286 50644704
+p 503 4736286 50644704
+p 504 4736286 49530837
+p 494 4736286 50644704
+p 496 4736286 49465056
+p 497 4736286 49465056
+p 498 4736286 48678624
+p 493 4736286 47040224
+p 492 4736286 47040224
+p 491 4736286 47040224
+p 433 4736286 47040224
+p 434 4736286 47040224
+p 440 8695633 32629812
+p 438 8695633 32629812
+p 439 8336823 32629812
+p 437 8336823 32629812
+p 441 8695633 32629812
+p 443 8695633 32629812
+p 444 8695633 32629812
+p 446 8695633 32629812
+p 447 8695633 32629812
+p 445 8695633 32629812
+p 448 18528536 32629812
+p 450 18528536 32629812
+p 451 18528536 32629812
+p 453 18528536 32629812
+p 454 18528536 32629812
+p 452 18528536 32629812
+p 459 4736286 31083162
+p 456 17920895 31083162
+p 457 21042878 31083162
+p 458 21042878 31974452
+p 432 6530338 28912044
+p 483 6530338 26644498
+p 481 6530338 26644498
+p 482 4736286 26644498
+p 479 4736286 26644498
+p 480 6171528 26644498
+p 487 8109102 24966776
+p 485 8109102 24966776
+p 486 6530338 24966776
+p 484 6530338 24966776
+p 489 6530338 21676868
+p 500 4736286 6027778
+p 501 4736286 6027778
+l 506 222
+l 507 222
+l 508 222
+l 509 223
+l 510 225
+l 511 225
+l 512 225
+l 513 226
+l 514 226
+l 515 226
+l 516 229
+l 517 229
+l 518 229
+l 519 230
+l 520 230
+l 521 230
+l 522 231
+l 523 232
+l 524 235
+l 525 235
+l 526 235
+l 527 236
+l 528 236
+l 529 236
+l 530 237
+l 531 237
+l 532 237
+l 533 238
+l 534 238
+l 535 238
+l 536 239
+l 537 239
+l 538 239
+l 539 240
+l 540 240
+l 541 240
+l 542 242
+l 543 245
+l 544 245
+l 545 245
+l 546 246
+l 547 248
+l 548 248
+l 549 248
+l 550 250
+l 551 253
+l 552 255
+l 553 255
+l 554 255
+l 555 256
+l 556 257
+l 557 257
+l 558 257
+l 559 258
+l 560 258
+l 561 258
+l 562 259
+l 563 259
+l 564 259
+l 565 260
+l 566 260
+l 567 260
+l 568 261
+l 569 261
+l 570 261
+l 571 262
+l 572 262
+l 573 262
+l 574 263
+l 575 263
+l 576 263
+l 577 264
+l 578 264
+l 579 264
+l 580 265
+l 581 265
+l 582 265
+l 583 267
+l 584 267
+l 585 267
+l 586 268
+l 587 269
+l 588 269
+l 589 269
+l 590 273
+l 591 273
+l 592 273
+l 593 274
+l 594 274
+l 595 274
+l 596 274
+l 597 274
+l 598 274
+l 599 274
+l 600 274
+l 601 274
+l 602 274
+l 603 274
+l 604 274
+l 605 274
+s 7
+p 605 4736286 6027778
+p 602 4736286 50644704
+p 603 4736286 50644704
+p 604 4736286 49530837
+p 594 4736286 50644704
+p 596 4736286 49465056
+p 597 4736286 49465056
+p 598 4736286 48678624
+p 593 4736286 47040224
+p 508 4736286 46319328
+p 507 4736286 46319328
+p 509 4736286 44717572
+p 513 6530338 43039850
+p 511 6530338 43039850
+p 512 4736286 43039850
+p 510 4736286 43039850
+p 514 12463570 43039850
+p 519 6530338 41362128
+p 517 6530338 41362128
+p 518 4736286 41362128
+p 516 4736286 41362128
+p 520 18767629 41362128
+p 522 6530338 40470838
+p 523 6530338 39579548
+p 527 6530338 37901826
+p 525 6530338 37901826
+p 526 4736286 37901826
+p 524 4736286 37901826
+p 528 13576051 37901826
+p 530 6530338 37010536
+p 531 13946878 37010536
+p 536 6530338 35332814
+p 534 6530338 35332814
+p 535 4736286 35332814
+p 533 4736286 35332814
+p 537 13946878 35332814
+p 539 6530338 34441524
+p 540 19509283 34441524
+p 542 4736286 31872512
+p 545 4736286 29611721
+p 544 4736286 29611721
+p 546 4736286 28009965
+p 549 4736286 25197253
+p 548 4736286 25197253
+p 550 4736286 23842616
+p 551 4736286 22060036
+p 555 6530338 19491024
+p 553 6530338 19491024
+p 554 4736286 19491024
+p 552 4736286 19491024
+p 556 6530338 18599734
+p 557 12092743 18599734
+p 559 6530338 17708444
+p 560 11721916 17708444
+p 562 6530338 16817154
+p 563 12092743 16817154
+p 565 6530338 15925864
+p 566 11721916 15925864
+p 568 6530338 15034574
+p 569 12463570 15034574
+p 571 6530338 14143284
+p 572 13205224 14143284
+p 574 6530338 13251994
+p 575 16542667 13251994
+p 577 6530338 12360704
+p 578 16542667 12360704
+p 580 6530338 11469414
+p 581 16171840 11469414
+p 600 4736286 6027778
+p 601 4736286 6027778
+l 606 275
+l 607 275
+l 608 275
+l 609 276
+l 610 276
+l 611 276
+l 612 276
+l 613 277
+l 614 278
+l 615 278
+l 616 278
+l 617 280
+l 618 280
+l 619 280
+l 620 281
+l 621 282
+l 622 282
+l 623 284
+l 624 284
+l 625 284
+l 626 285
+l 627 286
+l 628 286
+l 629 286
+l 630 287
+l 631 287
+l 632 287
+l 633 288
+l 634 288
+l 635 288
+l 636 289
+l 637 289
+l 638 289
+l 639 290
+l 640 291
+l 641 291
+l 642 291
+l 643 294
+l 644 294
+l 645 294
+l 646 295
+l 647 295
+l 648 295
+l 649 296
+l 650 296
+l 651 297
+l 652 297
+l 653 297
+l 654 298
+l 655 298
+l 656 298
+l 657 299
+l 658 299
+l 659 299
+l 660 300
+l 661 303
+l 662 303
+l 663 303
+l 664 303
+l 665 303
+l 666 303
+l 667 303
+l 668 305
+l 669 305
+l 670 305
+l 671 305
+l 672 305
+l 673 305
+l 674 305
+l 675 305
+l 676 305
+l 677 305
+l 678 305
+l 679 305
+l 680 305
+l 681 305
+l 682 306
+l 683 306
+l 684 307
+l 685 307
+l 686 307
+l 687 307
+l 688 307
+l 689 307
+l 690 307
+l 691 307
+l 692 307
+l 693 307
+l 694 307
+l 695 307
+l 696 307
+l 697 308
+l 698 308
+l 699 309
+l 700 309
+l 701 309
+l 702 309
+l 703 309
+l 704 309
+l 705 309
+l 706 309
+l 707 309
+l 708 309
+l 709 309
+l 710 309
+l 711 309
+l 712 310
+l 713 310
+l 714 310
+l 715 310
+l 716 310
+l 717 310
+l 718 310
+l 719 313
+l 720 313
+l 721 313
+l 722 316
+l 723 316
+l 724 316
+l 725 317
+l 726 317
+l 727 317
+l 728 317
+l 729 318
+l 730 319
+l 731 321
+l 732 321
+l 733 321
+l 734 321
+l 735 321
+l 736 321
+l 737 321
+l 738 322
+l 739 322
+l 740 322
+l 741 322
+l 742 322
+l 743 322
+l 744 322
+l 745 322
+l 746 323
+l 747 323
+l 748 323
+l 749 323
+l 750 323
+l 751 323
+l 752 323
+l 753 324
+l 754 324
+l 755 324
+l 756 324
+l 757 324
+l 758 328
+l 759 328
+l 760 328
+l 761 332
+l 762 332
+l 763 332
+l 764 333
+l 765 334
+l 766 334
+l 767 334
+l 768 334
+l 769 334
+l 770 334
+l 771 334
+l 772 334
+l 773 334
+l 774 334
+l 775 334
+l 776 334
+l 777 334
+s 8
+p 777 4736286 6027778
+p 774 4736286 50644704
+p 775 4736286 50644704
+p 776 4736286 49530837
+p 766 4736286 50644704
+p 768 4736286 49465056
+p 769 4736286 49465056
+p 770 4736286 48678624
+p 765 4736286 47040224
+p 760 4736286 46319328
+p 758 4736286 46319328
+p 721 4736286 45598432
+p 719 4736286 45598432
+p 586 6530338 44877536
+p 584 6530338 44877536
+p 585 4736286 44877536
+p 583 4736286 44877536
+p 587 6530338 43986246
+p 588 10238608 43986246
+p 591 4736286 42540090
+p 608 4736286 40655049
+p 607 4736286 40655049
+p 610 4736286 39300412
+p 613 4736286 38409122
+p 614 4736286 37517832
+p 620 6530338 35180385
+p 618 6530338 35180385
+p 619 4736286 35180385
+p 617 4736286 35180385
+p 621 17655148 35180385
+p 626 6530338 33734229
+p 624 6530338 33734229
+p 625 4736286 33734229
+p 623 4736286 33734229
+p 627 6530338 32842939
+p 628 18396802 32842939
+p 630 6530338 31951649
+p 631 12092743 31951649
+p 633 6530338 28386489
+p 634 12092743 28386489
+p 636 6530338 27495199
+p 637 12092743 27495199
+p 639 6530338 25712619
+p 640 6530338 24821329
+p 641 9867781 24821329
+p 646 6530338 22483882
+p 644 6530338 22483882
+p 645 4736286 22483882
+p 643 4736286 22483882
+p 647 14688532 22483882
+p 649 19138456 21592592
+p 651 6530338 20701302
+p 652 15059359 20701302
+p 654 6530338 17136142
+p 655 12092743 17136142
+p 657 6530338 16244852
+p 658 8384473 16244852
+p 660 6530338 14462272
+p 724 4736286 12022365
+p 723 4736286 12022365
+p 726 4736286 10667728
+p 729 4736286 9776438
+p 730 4736286 8885148
+p 772 4736286 6027778
+p 773 4736286 6027778
+l 778 334
+l 779 334
+l 780 334
+l 781 334
+l 782 334
+l 783 334
+l 784 334
+l 785 334
+l 786 334
+l 787 334
+l 788 334
+l 789 334
+l 790 334
+l 791 334
+l 792 334
+l 793 334
+s 9
+p 793 4736286 6027778
+p 790 4736286 50644704
+p 791 4736286 50644704
+p 792 4736286 49530837
+p 782 4736286 50644704
+p 784 4736286 49465056
+p 785 4736286 49465056
+p 786 4736286 48678624
+p 781 4736286 47040224
+p 780 4736286 51336253
+p 779 4736286 51336253
+p 661 4736286 43268483
+p 662 4736286 43268483
+p 668 6620039 36389056
+p 666 6620039 36389056
+p 667 6261229 36389056
+p 665 6261229 36389056
+p 677 6620039 42625056
+p 678 6620039 42625056
+p 669 6620039 36389056
+p 670 6620039 36389056
+p 672 6620039 36389056
+p 673 6620039 36389056
+p 675 6620039 36389056
+p 676 6620039 36389056
+p 674 6620039 36389056
+p 681 6620039 35497766
+p 679 10509803 35497766
+p 682 15409447 36389056
+p 683 15409447 37280346
+p 692 15409447 43268483
+p 693 15409447 43268483
+p 684 15409447 36389056
+p 685 15409447 36389056
+p 687 15409447 36389056
+p 688 15409447 36389056
+p 690 15409447 36389056
+p 691 15409447 36389056
+p 689 15409447 36389056
+p 696 15409447 35497766
+p 694 19256064 35497766
+p 697 24146230 36389056
+p 698 24146230 37280346
+p 707 24146230 43097551
+p 708 24146230 43097551
+p 699 24146230 36389056
+p 700 24146230 36389056
+p 702 24146230 36389056
+p 703 24146230 36389056
+p 705 24146230 36389056
+p 706 24146230 36389056
+p 704 24146230 36389056
+p 711 24146230 35497766
+p 709 27756878 35497766
+p 716 4736286 33763681
+p 717 8585921 33763681
+p 718 8585921 34654971
+p 731 4736286 22947533
+p 732 4736286 22947533
+p 738 7781060 14238183
+p 736 7781060 14238183
+p 737 7422250 14238183
+p 735 7422250 14238183
+p 739 7781060 14238183
+p 741 7781060 14238183
+p 742 7781060 14238183
+p 744 7781060 14238183
+p 745 7781060 14238183
+p 743 7781060 14238183
+p 746 19700503 14238183
+p 748 19700503 14238183
+p 749 19700503 14238183
+p 751 19700503 14238183
+p 752 19700503 14238183
+p 750 19700503 14238183
+p 757 4736286 12691533
+p 754 14051817 12691533
+p 755 17173800 12691533
+p 756 17173800 13582823
+p 788 4736286 6027778
+p 789 4736286 6027778
+l 794 334
+l 795 335
+l 796 336
+l 797 337
+l 798 338
+l 799 339
+l 800 340
+l 801 341
+l 802 344
+l 803 344
+l 804 344
+l 805 345
+l 806 346
+l 807 347
+l 808 348
+l 809 349
+l 810 350
+l 811 353
+l 812 354
+l 813 355
+l 814 356
+l 815 357
+l 816 359
+l 817 359
+l 818 359
+l 819 360
+l 820 361
+l 821 362
+l 822 362
+l 823 362
+l 824 363
+l 825 364
+l 826 365
+l 827 366
+l 828 366
+l 829 366
+l 830 367
+l 831 370
+l 832 372
+l 833 374
+l 834 375
+l 835 376
+l 836 377
+l 837 380
+l 838 380
+l 839 380
+l 840 382
+l 841 382
+l 842 382
+l 843 383
+l 844 383
+l 845 383
+l 846 383
+l 847 383
+l 848 383
+l 849 383
+l 850 383
+l 851 383
+l 852 383
+l 853 383
+l 854 383
+l 855 383
+s 10
+p 855 4736286 6027778
+p 852 4736286 50644704
+p 853 4736286 50644704
+p 854 4736286 49530837
+p 844 4736286 50644704
+p 846 4736286 49465056
+p 847 4736286 49465056
+p 848 4736286 48678624
+p 843 4736286 47040224
+p 764 6530338 46319328
+p 762 6530338 46319328
+p 763 4736286 46319328
+p 761 4736286 46319328
+p 794 6530338 45428038
+p 795 6530338 44536748
+p 796 6530338 43645458
+p 797 6530338 42754168
+p 798 6530338 41862878
+p 799 6530338 40971588
+p 800 6530338 40080298
+p 801 6530338 39189008
+p 805 6530338 37891931
+p 803 6530338 37891931
+p 804 4736286 37891931
+p 802 4736286 37891931
+p 806 6530338 37000641
+p 807 6530338 36109351
+p 808 6530338 35218061
+p 809 6530338 34326771
+p 810 6530338 33435481
+p 811 4736286 32138404
+p 812 4736286 30355824
+p 813 4736286 29464534
+p 814 4736286 28573244
+p 815 4736286 26790664
+p 819 6530338 24602296
+p 817 6530338 24602296
+p 818 4736286 24602296
+p 816 4736286 24602296
+p 820 6530338 23711006
+p 821 6530338 22819716
+p 822 12092743 22819716
+p 824 6530338 21928426
+p 825 6530338 21037136
+p 826 6530338 20145846
+p 827 6530338 19254556
+p 828 9867781 19254556
+p 830 6530338 18363266
+p 831 4736286 17066189
+p 832 4736286 14392319
+p 833 4736286 12609739
+p 834 4736286 10827159
+p 835 4736286 9935869
+p 836 4736286 8153289
+p 850 4736286 6027778
+p 851 4736286 6027778
+l 856 383
+l 857 385
+l 858 388
+l 859 388
+l 860 388
+l 861 389
+l 862 389
+l 863 390
+l 864 391
+l 865 391
+l 866 392
+l 867 393
+l 868 393
+l 869 394
+l 870 395
+l 871 395
+l 872 396
+l 873 399
+l 874 404
+l 875 404
+l 876 404
+l 877 406
+l 878 406
+l 879 406
+l 880 407
+l 881 409
+l 882 411
+l 883 411
+l 884 411
+l 885 411
+l 886 411
+l 887 411
+l 888 411
+l 889 413
+l 890 413
+l 891 413
+l 892 413
+l 893 413
+l 894 413
+l 895 413
+l 896 413
+l 897 413
+l 898 413
+l 899 413
+l 900 413
+l 901 413
+l 902 413
+l 903 414
+l 904 414
+l 905 415
+l 906 415
+l 907 415
+l 908 415
+l 909 415
+l 910 415
+l 911 415
+l 912 415
+l 913 415
+l 914 415
+l 915 415
+l 916 415
+l 917 415
+l 918 416
+l 919 416
+l 920 416
+l 921 416
+l 922 416
+l 923 416
+l 924 416
+l 925 419
+l 926 419
+l 927 419
+l 928 422
+l 929 422
+l 930 422
+l 931 423
+l 932 425
+l 933 428
+l 934 428
+l 935 428
+l 936 429
+l 937 431
+l 938 431
+l 939 431
+l 940 431
+l 941 431
+l 942 431
+l 943 431
+l 944 431
+l 945 431
+l 946 431
+l 947 431
+l 948 431
+l 949 431
+s 11
+p 949 4736286 6027778
+p 946 4736286 50644704
+p 947 4736286 50644704
+p 948 4736286 49530837
+p 938 4736286 50644704
+p 940 4736286 49465056
+p 941 4736286 49465056
+p 942 4736286 48678624
+p 937 4736286 47040224
+p 927 4736286 46319328
+p 925 4736286 46319328
+p 839 4736286 45598432
+p 838 4736286 45598432
+p 841 4736286 43326291
+p 856 4736286 41543711
+p 857 4736286 40652421
+p 861 6530338 38974699
+p 859 6530338 38974699
+p 860 4736286 38974699
+p 858 4736286 38974699
+p 862 6530338 38974699
+p 863 6530338 38083409
+p 864 6530338 37192119
+p 865 6530338 37192119
+p 866 6530338 36300829
+p 867 6530338 35409539
+p 868 6530338 35409539
+p 869 6530338 34518249
+p 870 6530338 33626959
+p 871 6530338 33626959
+p 872 6530338 32735669
+p 873 4736286 31057947
+p 876 4736286 24680075
+p 875 4736286 24680075
+p 878 4736286 23325438
+p 880 4736286 21542858
+p 881 4736286 20651568
+p 930 4736286 12491116
+p 929 4736286 12491116
+p 931 4736286 11136479
+p 932 4736286 10245189
+p 944 4736286 6027778
+p 945 4736286 6027778
+l 950 431
+l 951 433
+l 952 433
+l 953 433
+l 954 435
+l 955 439
+l 956 439
+l 957 439
+l 958 441
+l 959 443
+l 960 443
+l 961 443
+l 962 445
+(.geocubit_manual.bbl
+)
+l 963 447
+l 964 447
+l 965 447
+l 966 447
+l 967 447
+l 968 447
+l 969 447
+l 970 447
+l 971 447
+l 972 447
+l 973 447
+l 974 447
+l 975 447
+l 976 447
+l 977 447
+l 978 447
+s 12
+p 978 4736286 6027778
+p 975 4736286 50644704
+p 976 4736286 50644704
+p 977 4736286 49530837
+p 967 4736286 50644704
+p 969 4736286 49465056
+p 970 4736286 49465056
+p 971 4736286 48678624
+p 966 4736286 47040224
+p 965 4736286 47040224
+p 964 4736286 47040224
+p 882 4736286 47040224
+p 883 4736286 47040224
+p 889 10040492 40096214
+p 887 10040492 40096214
+p 888 9681682 40096214
+p 886 9681682 40096214
+p 898 10040492 46661117
+p 899 10040492 46661117
+p 890 10040492 40096214
+p 891 10040492 40096214
+p 893 10040492 40096214
+p 894 10040492 40096214
+p 896 10040492 40096214
+p 897 10040492 40096214
+p 895 10040492 40096214
+p 902 10040492 39204924
+p 900 13200092 39204924
+p 903 17369571 40096214
+p 904 17369571 40987504
+p 913 17369571 47040224
+p 914 17369571 47040224
+p 905 17369571 40096214
+p 906 17369571 40096214
+p 908 17369571 40096214
+p 909 17369571 40096214
+p 911 17369571 40096214
+p 912 17369571 40096214
+p 910 17369571 40096214
+p 917 17369571 39204924
+p 915 22624651 39204924
+p 922 4736286 37470839
+p 923 8093734 37470839
+p 924 8093734 38362129
+p 935 4736286 32710780
+p 934 4736286 32710780
+p 936 4736286 31356143
+p 950 4736286 30464853
+p 953 4736286 28543431
+p 952 4736286 28543431
+p 954 4736286 27188794
+p 957 4736286 24928003
+p 956 4736286 24928003
+p 958 4736286 23326247
+p 961 4736286 21065456
+p 960 4736286 21065456
+p 962 4736286 17104404
+p 973 4736286 6027778
+p 974 4736286 6027778
+l 979 447
+l 980 447

Modified: seismo/3D/GEOCUBIT/trunk/doc/geocubit_manual.tex
===================================================================
--- seismo/3D/GEOCUBIT/trunk/doc/geocubit_manual.tex	2012-06-27 21:35:50 UTC (rev 20422)
+++ seismo/3D/GEOCUBIT/trunk/doc/geocubit_manual.tex	2012-06-27 22:42:44 UTC (rev 20423)
@@ -434,10 +434,31 @@
 
 \subsection{TODO Grouping the hexes with different period resolved}
 
-TO DO
+Checking the stability
+For execution type: \texttt{GEOCUBIT.py --meshfiles=[filename] --stability (--tomofile=[tomographic file]/--vp=[vp text value] --vs=[vs text value])}.
 
+or
 
+in the script tab of the CUBIT GUI, type:
 
+\begin{lyxcode}
+>from geocubitlib.hex_metric import SEM_stability_3D $\to$  \textrm{\small{\textit{load the geocubit modules}}}\\
+>mesh=SEM_stability_3D()\\
+>mesh.check_simulation_parameter(vp_static=vp,vs_static=vs) $\to$  \textrm{\small{\textit{text the mesh against some homogeneous velocity model}}}\\
+or\\
+>mesh.check_simulation_parameter(tomofile=tomofile) $\to$  \textrm{\small{\textit{text the mesh against a tomographic file}}}\\
+mesh.group_timestep() $\to$  \textrm{\small{\textit{grouping hex with similar timestep}}}\\
+mesh.group_period() $\to$  \textrm{\small{\textit{grouping hex with similar period}}}\\
+\end{lyxcode}
+
+
+
+TO DO: picture
+
+ 
+
+
+
 \section{TODO SPECFEM3D MESH FORMAT}
 
 TO DO

Modified: seismo/3D/GEOCUBIT/trunk/geocubitlib/exportlib.py
===================================================================
--- seismo/3D/GEOCUBIT/trunk/geocubitlib/exportlib.py	2012-06-27 21:35:50 UTC (rev 20422)
+++ seismo/3D/GEOCUBIT/trunk/geocubitlib/exportlib.py	2012-06-27 22:42:44 UTC (rev 20423)
@@ -625,8 +625,14 @@
             lengthmin=min(lengthmin,cubit.get_mesh_edge_length(e))
         length[ns]=lengthmin*.5
         cubit.cmd('delete group '+str(ge))
-    minvalue=min(length.values())
-    maxvalue=max(length.values())
+    try:
+        minvalue=min(length.values())
+        maxvalue=max(length.values())
+    except:
+        print nodes1,nodes2,nodes3,nodes4
+        print 'edges ', e1
+        minvalue=100.
+        maxvalue=2000.
     print 'min lentgh: ',minvalue,'max lentgh: ',maxvalue
     nbin= int((maxvalue/minvalue)/2.)+1
     factor=(maxvalue-minvalue)/nbin

Modified: seismo/3D/GEOCUBIT/trunk/geocubitlib/hex_metric.py
===================================================================
--- seismo/3D/GEOCUBIT/trunk/geocubitlib/hex_metric.py	2012-06-27 21:35:50 UTC (rev 20422)
+++ seismo/3D/GEOCUBIT/trunk/geocubitlib/hex_metric.py	2012-06-27 22:42:44 UTC (rev 20423)
@@ -54,7 +54,7 @@
         self.valence_threshold=7
         self.resolution=.05
         self.resolution_edge_length=.1
-        self.nbin=20
+        self.nbin=10
         self.spatial_unit=1
         self.gll=0.17267316464601141
         self.dt=None
@@ -510,13 +510,263 @@
         self.hex_max_edge_length=h_global_max_edge_length
         self.edgemin_hyst=edgemin_hyst
         self.edgemax_hyst=edgemax_hyst
-        self.stability()
+        #
+        
+class SEM_stability_3D(SEM_metric_3D):
+    def __init__(self,list_hex=None,volume=None):
+        super(SEM_metric_3D, self).__init__()
+        self.list_hex=list_hex
+        self.volume=volume
+        self.Ngll_per_wavelength=5
+        self.gllcoeff=.17
+        self.maxgllcoeff=0.5-.17
+        self.Cmax=.3
+        self.nbin=10
+        self.period_hyst=None
+        self.dt=None
+        self.cubit_skew =0
+        #
+        #
+        #
+    def __repr__(self):
+        print 'check mesh stability'
+        #
+    def check_simulation_parameter(self,list_hex=None,volume=None,tomofile=None,vp_static=None,vs_static=None):
+        self.pick_hex(list_hex=list_hex,volume=volume)
+        timestep_hyst={}
+        stability_hyst={}
+        global_min_timestep=float(1)
+        global_max_periodresolved=None
+        if tomofile: 
+            self.read_tomo(tomofile)
+        #
+        #
+        for ind,h in enumerate(self.list_hex):
+            if ind%10000==0: print 'hex checked: '+str(int(float(ind)/len(self.list_hex)*100))+'%'
+            dt_tmp,pmax_tmp,_,_=self.hex_simulation_parameter(h,vp_static=vp_static,vs_static=vs_static)
+            timestep_hyst[h]=dt_tmp
+            stability_hyst[h]=pmax_tmp
+            if dt_tmp < global_min_timestep:
+                global_min_timestep=dt_tmp
+            if pmax_tmp > global_max_periodresolved:
+                global_max_periodresolved=pmax_tmp   
+        #
+        self.period=global_max_periodresolved    
+        self.dt=global_min_timestep      
+        self.dt_hyst=timestep_hyst
+        self.period_hyst=stability_hyst
+        #                
+    def read_tomo(self,tomofile=None):
+        if tomofile:
+            print 'reading tomography file ',tomofile
+            import numpy
+            #xtomo,ytomo,ztomo,vp,vs,rho=numpy.loadtxt(tomofile,skiprows=4)
+            print 'tomography file loaded'
+            tf=open(tomofile,'r')
+            orig_x, orig_y, orig_z, end_x, end_y, end_z        =map(float,tf.readline().split())
+            spacing_x, spacing_y, spacing_z                    =map(float,tf.readline().split())
+            nx, ny, nz                                         =map(int,tf.readline().split())
+            vp_min, vp_max, vs_min, vs_max, rho_min, rho_max   =map(float,tf.readline().split())
+            #
+            ind=0
+            import sys
+            xtomo,ytomo,ztomo,vp,vs=[],[],[],[],[]
+            while ind<nx*ny*nz:
+                ind=ind+1
+                if ind%100000==0: sys.stdout.write("reading progress: %i/%i   \r" % (ind,(nx*ny*nz)) )
+                x,y,z,v1,v2,_=map(float,tf.readline().split())
+                xtomo.append(x)
+                ytomo.append(y)
+                ztomo.append(z)
+                vp.append(v1)
+                vs.append(v2)
+            tf.close()
+            print 'tomography file loaded'
+            #
+            self.orig_x, self.orig_y, self.orig_z, self.end_x, self.end_y, self.end_z        = orig_x, orig_y, orig_z, end_x, end_y, end_z        
+            self.spacing_x, self.spacing_y, self.spacing_z                    = spacing_x, spacing_y, spacing_z                    
+            self.nx, self.ny, self.nz                                         = nx, ny, nz                                         
+            self.vp_min, self.vp_max, self.vs_min, self.vs_max = vp_min, vp_max, vs_min, vs_max
+            self.xtomo,self.ytomo,self.ztomo,self.vp,self.vs=xtomo,ytomo,ztomo,vp,vs
+        else:
+            print 'no tomofile!!!!'
+            #
+            #
+            #
+    def tomo(self,x,y,z,vp_static=None,vs_static=None):
+        if not vp_static:
+            spac_x = (x - self.orig_x) / self.spacing_x
+            spac_y = (y - self.orig_y) / self.spacing_y
+            spac_z = (z - self.orig_z) / self.spacing_z
+            #
+            ix = int(spac_x)
+            iy = int(spac_y)
+            iz = int(spac_z)
+            #
+            gamma_interp_x = spac_x - float(ix)
+            gamma_interp_y = spac_y - float(iy)
+            #
+            NX=self.nx
+            NY=self.ny
+            NZ=self.nz
+            if(ix < 0):
+                ix = 0
+                gamma_interp_x = 0.
+            if(ix > NX-2):         
+                ix = NX-2          
+                gamma_interp_x = 1.
+            if(iy < 0):            
+                iy = 0             
+                gamma_interp_y = 0.
+            if(iy > NY-2):         
+                iy = NY-2          
+                gamma_interp_y = 1.
+            if(iz < 0):            
+                 iz = 0
+            if(iz > NZ-2):
+                 iz = NZ-2
+            #
+            p0 = ix+iy*NX+iz*(NX*NY)
+            p1 = (ix+1)+iy*NX+iz*(NX*NY)
+            p2 = (ix+1)+(iy+1)*NX+iz*(NX*NY)
+            p3 = ix+(iy+1)*NX+iz*(NX*NY)
+            p4 = ix+iy*NX+(iz+1)*(NX*NY)
+            p5 = (ix+1)+iy*NX+(iz+1)*(NX*NY)
+            p6 = (ix+1)+(iy+1)*NX+(iz+1)*(NX*NY)
+            p7 = ix+(iy+1)*NX+(iz+1)*(NX*NY)
+            #
+            if self.ztomo[p4]==self.ztomo[p0]:
+                gamma_interp_z1 = 1
+            else:
+                gamma_interp_z1 = (z-self.ztomo[p0])/(self.ztomo[p4]-self.ztomo[p0])
+            if(gamma_interp_z1 > 1.): gamma_interp_z1 = 1.
+            if(gamma_interp_z1 < 0.): gamma_interp_z1 = 0.
+            #
+            if self.ztomo[p5]==self.ztomo[p1]:
+                gamma_interp_z2 = 1
+            else:
+                gamma_interp_z2 = (z-self.ztomo[p1])/(self.ztomo[p5]-self.ztomo[p1])
+            if(gamma_interp_z2 > 1.): gamma_interp_z2 = 1.
+            if(gamma_interp_z2 < 0.): gamma_interp_z2 = 0.
+            #
+            if self.ztomo[p6]==self.ztomo[p2]:
+                gamma_interp_z3 = 1
+            else:
+                gamma_interp_z3 = (z-self.ztomo[p2])/(self.ztomo[p6]-self.ztomo[p2])
+            if(gamma_interp_z3 > 1.): gamma_interp_z3 = 1.
+            if(gamma_interp_z3 < 0.): gamma_interp_z3 = 0.
+            #
+            if self.ztomo[p7]==self.ztomo[p3]:
+                gamma_interp_z4 = 1
+            else:
+                gamma_interp_z4 = (z-self.ztomo[p3])/(self.ztomo[p7]-self.ztomo[p3])
+            if(gamma_interp_z4 > 1.): gamma_interp_z4 = 1.
+            if(gamma_interp_z4 < 0.): gamma_interp_z4 = 0.
+            #
+            gamma_interp_z5 = 1. - gamma_interp_z1
+            gamma_interp_z6 = 1. - gamma_interp_z2
+            gamma_interp_z7 = 1. - gamma_interp_z3
+            gamma_interp_z8 = 1. - gamma_interp_z4
+            #
+            vp1 = self.vp[p0]
+            vp2 = self.vp[p1]
+            vp3 = self.vp[p2]
+            vp4 = self.vp[p3]
+            vp5 = self.vp[p4]
+            vp6 = self.vp[p5]
+            vp7 = self.vp[p6]
+            vp8 = self.vp[p7]
+            #       [  ]
+            vs1 = self.vs[p0]
+            vs2 = self.vs[p1]
+            vs3 = self.vs[p2]
+            vs4 = self.vs[p3]
+            vs5 = self.vs[p4]
+            vs6 = self.vs[p5]
+            vs7 = self.vs[p6]
+            vs8 = self.vs[p7]
+            #
+            vp_final = vp1*(1.-gamma_interp_x)*(1.-gamma_interp_y)*(1.-gamma_interp_z1) + \
+               vp2*gamma_interp_x*(1.-gamma_interp_y)*(1.-gamma_interp_z2) + \
+               vp3*gamma_interp_x*gamma_interp_y*(1.-gamma_interp_z3) + \
+               vp4*(1.-gamma_interp_x)*gamma_interp_y*(1.-gamma_interp_z4) + \
+               vp5*(1.-gamma_interp_x)*(1.-gamma_interp_y)*gamma_interp_z1 + \
+               vp6*gamma_interp_x*(1.-gamma_interp_y)*gamma_interp_z2 + \
+               vp7*gamma_interp_x*gamma_interp_y*gamma_interp_z3 + \
+               vp8*(1.-gamma_interp_x)*gamma_interp_y*gamma_interp_z4
+            #
+            vs_final = vs1*(1.-gamma_interp_x)*(1.-gamma_interp_y)*(1.-gamma_interp_z1) + \
+               vs2*gamma_interp_x*(1.-gamma_interp_y)*(1.-gamma_interp_z2) + \
+               vs3*gamma_interp_x*gamma_interp_y*(1.-gamma_interp_z3) + \
+               vs4*(1.-gamma_interp_x)*gamma_interp_y*(1.-gamma_interp_z4) + \
+               vs5*(1.-gamma_interp_x)*(1.-gamma_interp_y)*gamma_interp_z1 + \
+               vs6*gamma_interp_x*(1.-gamma_interp_y)*gamma_interp_z2 + \
+               vs7*gamma_interp_x*gamma_interp_y*gamma_interp_z3 + \
+               vs8*(1.-gamma_interp_x)*gamma_interp_y*gamma_interp_z4
+            #
+            if(vp_final < self.vp_min): vp_final = self.vp_min
+            if(vs_final < self.vs_min): vs_final = self.vs_min
+            if(vp_final > self.vp_max): vp_final = self.vp_max
+            if(vs_final > self.vs_max): vs_final = self.vs_max
+            return vp_final,vs_final
+        else:
+            return vp_static,vs_static
     #
+    def hex_simulation_parameter(self,h,vp_static=None,vs_static=None):
+        nodes=cubit.get_connectivity('Hex',h)
+        id_nodes=[0,1,2,3,4,5,6,7]
+        id_faces=[[1,3,4],[0,2,5],[1,3,6],[0,2,7],[5,7],[4,6],[5,7],[4,6]]
+        dt=[]
+        pmax=[]
+        vmax=[]
+        vmin=[]
+        for i in id_nodes[:-1]:
+            for j in id_nodes[i+1:]:
+                x1,y1,z1=cubit.get_nodal_coordinates(nodes[i])
+                x2,y2,z2=cubit.get_nodal_coordinates(nodes[j])
+                nvp1,nvs1=self.tomo(x1,y1,z1,vp_static,vs_static)
+                nvp2,nvs2=self.tomo(x2,y2,z2,vp_static,vs_static)
+                d=math.sqrt((x2-x1)**2+(y2-y1)**2+(z2-z1)**2)
+                #pmax_tmp=d*self.gllcoeff/min(nvp1,nvp2,nvs1,nvs2)*self.Ngll_per_wavelength
+                pmax_tmp=d*(.5-self.gllcoeff)/min(nvp1,nvp2,nvs1,nvs2)*self.Ngll_per_wavelength #more conservative.....
+                dt_tmp=self.Cmax*d*self.gllcoeff/max(nvp1,nvp2,nvs1,nvs2)
+                dt.append(dt_tmp)
+                pmax.append(pmax_tmp)
+                vmax.append(max(nvp1,nvp2,nvs1,nvs2))
+                vmin.append(min(nvp1,nvp2,nvs1,nvs2))
+        return min(dt),max(pmax),min(vmin),max(vmax)
     #
-    #
-    #
-    def stability(self,velocity=1.):
-        dt=0.48*self.min_edge_length*self.gll/velocity
-        self.dt=dt
-        self.velocity=velocity
-        return dt
\ No newline at end of file
+    def group_period(self):
+        tot=0.
+        if self.period_hyst is not None:
+            pmin=min(self.period_hyst.values())
+            period=self.hyst(pmin,self.period,self.period_hyst)
+            factor=(self.period-pmin)/self.nbin
+            for i in range(0,self.nbin+1):
+                if period.has_key(i):
+                    txt='group "period_%.1e_%.1e" add hex ' %(pmin+factor*i,pmin+factor*(i+1))
+                    txt=txt+' '.join(str(hh) for hh in period[i])
+                    cubit.cmd(txt)
+    def group_timestep(self):
+         tot=0.
+         if self.dt_hyst is not None:
+             dtmax=max(self.dt_hyst.values())
+             dt=self.hyst(self.dt,dtmax,self.dt_hyst)
+             factor=(dtmax-self.dt)/self.nbin
+             for i in range(0,self.nbin+1):
+                 if dt.has_key(i):
+                     txt='group "timestep_%.1e_%.1e" add hex ' %(self.dt+factor*i,self.dt+factor*(i+1))
+                     txt=txt+' '.join(str(hh) for hh in dt[i])
+                     cubit.cmd(txt)
+
+
+#cubit.cmd('brick x 10000')
+#cubit.cmd('mesh vol 1')
+#cubit.cmd('refine hex in node in surf 1')
+#cubit.cmd('refine hex in node in surf 3')
+#vp=1000
+#vs=600
+#mesh=SEM_stability_3D()
+#mesh.check_simulation_parameter(vp_static=vp,vs_static=vs)
+#mesh.group_timestep()
+#mesh.group_period()
\ No newline at end of file

Modified: seismo/3D/GEOCUBIT/trunk/geocubitlib/mesh_volume.py
===================================================================
--- seismo/3D/GEOCUBIT/trunk/geocubitlib/mesh_volume.py	2012-06-27 21:35:50 UTC (rev 20422)
+++ seismo/3D/GEOCUBIT/trunk/geocubitlib/mesh_volume.py	2012-06-27 22:42:44 UTC (rev 20423)
@@ -172,6 +172,14 @@
     
     #
     #smoothing
+    print iproc, 'untangling...'
+    cmd="volume all smooth scheme untangle beta 0.02 cpu 10"
+    cubit.cmd(cmd)
+    cmd="smooth volume all"
+    cubit.cmd(cmd)
+    
+    
+    
     if  cfg.smoothing:
         print 'smoothing .... '+str(cfg.smoothing)
         cubitcommand= 'surf all smooth scheme laplacian '
@@ -239,6 +247,13 @@
     print iproc, 'hex block definition...'
     boundary_definition.define_bc(entities,parallel=True,cpux=cfg.cpux,cpuy=cfg.cpuy,cpuxmin=0,cpuymin=0)
     #save mesh
+    
+    print iproc, 'untangling...'
+    cmd="volume all smooth scheme untangle beta 0.02 cpu 10"
+    cubit.cmd(cmd)
+    cmd="smooth volume all"
+    cubit.cmd(cmd)
+    
     print iproc, 'saving...'
     savemesh(mpiflag,iproc=iproc,filename=filename)
     #

Modified: seismo/3D/GEOCUBIT/trunk/geocubitlib/quality_log.py
===================================================================
--- seismo/3D/GEOCUBIT/trunk/geocubitlib/quality_log.py	2012-06-27 21:35:50 UTC (rev 20422)
+++ seismo/3D/GEOCUBIT/trunk/geocubitlib/quality_log.py	2012-06-27 22:42:44 UTC (rev 20423)
@@ -154,4 +154,129 @@
     
     print 'max specfem3d skewness: ',mesh.max_skewness
     print 'min edge length: ',mesh.min_edge_length
+    return mesh.max_skewness,mesh.min_edge_length
+    
+    
+def quality_log(tqfile=None):
+    """
+    creation of the quality parameter file
+    """
+    import start as start
+    #
+    #
+    mpiflag,iproc,numproc,mpi   = start.start_mpi()
+    #
+    #
+    from hex_metric import SEM_metric_3D
+    #
+    lvol=cubit.parse_cubit_list('volume','all')
+    if len(lvol)!=0:
+        cubit.cmd('quality vol all allmetric                                      ')
+    else:
+        cubit.cmd('quality hex in block all allmetric                                      ')
+    cubit.cmd('list model                                                      ')
+    #
+    toclose=True
+    if isinstance(tqfile,file): 
+        totstat_file=tqfile
+    elif isinstance(tqfile,str):
+        totstat_file=open(tqfile+'_cubitquality_skewness_proc_'+str(iproc)+'.log','w')
+    else:
+        import sys
+        totstat_file=sys.stdout
+        toclose=False
+
+    mesh=SEM_metric_3D()
+    mesh.check_metric()
+
+    if mesh.max_skewness is not None:
+        mesh.skew_hystogram=mesh.hyst(0,mesh.max_skewness,mesh.skew_hyst)
+        totstat_file.write('-'*70+'\n')
+
+
+
+
+
+        totstat_file.write('='*70+'\n')
+        totstat_file.write('SKEWNESS'+'\n')
+        totstat_file.write('='*70+'\n') 
+        if len(mesh.hex_max_skewness) <= 30:
+            totstat_file.write('max = '+str(mesh.max_skewness)+' in hexes '+str(mesh.hex_max_skewness)+'\n')
+            totstat_file.write('(angle -> minimun ='+str(mesh.min_angle)+ ' maximun ='+str(mesh.max_angle)+')'+'\n')
+        else:
+            totstat_file.write('max = '+str(mesh.max_skewness)+' in '+str(len(mesh.hex_max_skewness))+' hexes '+'\n')
+            totstat_file.write('(angle -> minimun ='+str(mesh.min_angle)+' maximun ='+str(mesh.max_angle)+')'+'\n')
+        totstat_file.write('-'*70+'\n')
+        totstat_file.write('skew hystogram')
+        totstat_file.write('-'*70+'\n')
+        tot=0
+        for i in mesh.skew_hystogram.values():
+            tot=tot+len(i)
+        #k=mesh.skew_hystogram.keys()
+        #k.sort()
+        factor=mesh.max_skewness/mesh.nbin
+        for i in range(0,mesh.nbin+1):
+            if mesh.skew_hystogram.has_key(i):
+                if (i+1)*factor <= 1:
+                    totstat_file.write(str(i)+' ['+str(i*factor)+'->'+str((i+1)*factor)+'[ : '+str(len(mesh.skew_hystogram[i]))+'/'+str(tot)+' hexes ('+str(len(mesh.skew_hystogram[i])/float(tot)*100.)+'%)'+'\n')
+            else:
+                if (i+1)*factor <= 1:
+                    totstat_file.write(str(i)+' ['+str(i*factor)+'->'+str((i+1)*factor)+'[ : 0/'+str(tot)+' hexes (0%)'+'\n')
+        totstat_file.write('-'*70+'\n')
+    ###############################################
+    if mesh.min_edge_length is not None:
+        mesh.edgemin_hystogram=mesh.hyst(mesh.min_edge_length,mesh.max_edge_length,mesh.edgemin_hyst)
+        mesh.edgemax_hystogram=mesh.hyst(mesh.min_edge_length,mesh.max_edge_length,mesh.edgemax_hyst)
+        totstat_file.write('='*70+'\n')
+        totstat_file.write('edge length')
+        totstat_file.write('='*70+'\n')
+        if len(mesh.hex_min_edge_length) <= 30:
+            totstat_file.write('minimum edge length: '+str(mesh.min_edge_length)+ ' in hexes '+str(mesh.hex_min_edge_length)+'\n')
+        else:
+            totstat_file.write('minimum edge length: '+str(mesh.min_edge_length)+ ' in '+str(len(mesh.hex_min_edge_length))+ ' hexes.'+'\n')
+        if len(mesh.hex_max_edge_length) <= 30:
+            totstat_file.write('maximum edge length: '+str(mesh.max_edge_length)+ ' in hexes '+str(mesh.hex_max_edge_length)+'\n')              
+        else:                                                                                                                        
+            totstat_file.write('maximum edge length: '+str(mesh.max_edge_length)+' in '+str(len(mesh.hex_max_edge_length))+ ' hexes.'+'\n')    
+        totstat_file.write('-'*70+'\n')
+        totstat_file.write('edge length hystogram')
+        totstat_file.write('-'*70+'\n')
+        factor=(mesh.max_edge_length-mesh.min_edge_length)/mesh.nbin
+        totstat_file.write('minimum edge length'+'\n')
+        tot=0
+        for i in mesh.edgemin_hystogram.values():
+            tot=tot+len(i)
+        #k=mesh.edgemin_hystogram.keys()
+        #k.sort()
+        for i in range(0,mesh.nbin+1):
+            if mesh.edgemin_hystogram.has_key(i):
+                totstat_file.write(str(i)+' ['+str(i*factor+mesh.min_edge_length)+'->'+str((i+1)*factor+mesh.min_edge_length)+'[ : '+str(len(mesh.edgemin_hystogram[i]))+'/'+str(tot)+' hexes ('+str(len(mesh.edgemin_hystogram[i])/float(tot)*100.)+'%)'+'\n')
+            else:
+                totstat_file.write(str(i)+' ['+str(i*factor+mesh.min_edge_length)+'->'+str((i+1)*factor+mesh.min_edge_length)+'[ : 0/'+str(tot)+' hexes (0%)'+'\n')
+        totstat_file.write('-'*70+'\n')
+        totstat_file.write('maximum edge length')
+        tot=0
+        for i in mesh.edgemax_hystogram.values():
+            tot=tot+len(i)
+        #k=mesh.edgemax_hystogram.keys()
+        #k.sort()
+        for i in range(0,mesh.nbin+1):
+            if mesh.edgemax_hystogram.has_key(i):
+                totstat_file.write(str(i)+' ['+str(i*factor+mesh.min_edge_length)+'->'+str((i+1)*factor+mesh.min_edge_length)+'[ : '+str(len(mesh.edgemax_hystogram[i]))+'/'+str(tot)+' hexes ('+str(len(mesh.edgemax_hystogram[i])/float(tot)*100.)+'%)'+'\n')
+            else:
+                totstat_file.write(str(i)+' ['+str(i*factor+mesh.min_edge_length)+'->'+str((i+1)*factor+mesh.min_edge_length)+'[ : 0/'+str(tot)+' hexes (0%)'+'\n')
+    try:
+        if mesh.dt is not None:
+            totstat_file.write('='*70+'\n')
+            totstat_file.write('STABILITY')
+            totstat_file.write('='*70+'\n')
+            totstat_file.write('time step < '+str(mesh.dt)+'s, for velocity = '+str(mesh.velocity)+'\n')
+    except:
+        pass
+
+    if toclose: 
+        totstat_file.close()
+
+    print 'max specfem3d skewness: ',mesh.max_skewness
+    print 'min edge length: ',mesh.min_edge_length
     return mesh.max_skewness,mesh.min_edge_length
\ No newline at end of file



More information about the CIG-COMMITS mailing list