Short Course on Stanford GPRS (General Purpose Research Simulator) D. Echeverría Ciaurri and H. Pan NTNU Workshop P2 October 15, 2008 Outline Tutorial Presentation Simple Examples Black Oil Compositional Adjoint-based Optimization Hands-on Examples Simulation Adjoint-based Production Optimization Derivative-Free History Matching October 15, 2008 Trondheim, Norway 2 Outline Tutorial Presentation Simple Examples Black Oil Compositional Adjoint-based Optimization Hands-on Examples Simulation Adjoint-based Production Optimization Derivative-Free History Matching October 15, 2008 Trondheim, Norway 3 I. Tutorial Presentation October 15, 2008 Trondheim, Norway 4 Outline Brief Sotfware Description Input Files Reservoir Wells Control Output Files Adjoint-based Optimization October 15, 2008 Trondheim, Norway 5 Outline Brief Sotfware Description Input Files Reservoir Wells Control Output Files Adjoint-based Optimization October 15, 2008 Trondheim, Norway 6 A General Purpose Research Simulator New Generation of research simulator Developed by SUPRI-B/HW at Stanford GPRS is research tool via source code Object-oriented C++ code GPRS is not a commercial simulator limited support limited pre/post processing limited functionalities October 15, 2008 Trondheim, Norway 7 Advanced Features Structured/unestructured grid Black-oil/compositional fluid Two/multi-point flux Arbitrary choice of primary variables Variable implicit levels (FIM, IMPES, AIM, …) Many direct/iterative solvers/preconditioners Multiple-segmented well-model Gradients for adjoint-based optimization October 15, 2008 Trondheim, Norway 8 Research Platform Optimization CO2 Sequestration Generalized Multiple Phase Compositional/Thermal Model Flexible Variable Set & Implicitness Unstructured Grids/Advanced Solvers/Advanced Wells GPRS Multiscale Formulation Geomechanics Coupling Chemical Reaction Fractured Porous Media October 15, 2008 Trondheim, Norway 9 GPRS Releases GPRS 1.0 (initial version, 2002) GPRS 1.1 (08/03) GPRS 1.2 (06/04) GPRS 1.3 (11/04) GPRS 1.4 (11/05) GPRS 2.0 (06/06) GPRS 2.1 (02/07) GPRS 2.2 (xx/xx) October 15, 2008 Trondheim, Norway 10 Software Features Multiple platforms Visual Studio 6.0 Visual Studio 2005 Linux Unix (Solaris) Portable source code Single C++ source code for all platforms October 15, 2008 Trondheim, Norway 11 Documentation GPRS.html Building instructions User manual GPRS software overview Aplication Programming Interfaces (API) generated by Doxygen Under release packages (Enhancements) October 15, 2008 Trondheim, Norway 12 Packages Software package source code executable and support libraries building instruction files samples Document package basic simulator enhancements October 15, 2008 Trondheim, Norway 13 Executing GPRS Executables gprs.exe and gprs_adj.exe Support libraries mkl_support.dll and samg_dyn.dll File gprs.in required Executable is same directory as input files or GPRS directory in PATH variable October 15, 2008 Trondheim, Norway 14 Outline Brief Sotfware Description Input Files Reservoir Wells Control Output Files Adjoint-based Optimization October 15, 2008 Trondheim, Norway 15 Main Input File: gprs.in # --- Field Data --------------------FieldName Field1 # --- Reservoirs Data --------------NumOfReservoirs 1 INCLUDE res_spe1.in END_RESERVOIRS # --- Wells Data ---------------------NumOfWells 2 INCLUDE wells_spe1.in END_WELLS # --- Control Data -------------------INCLUDE control.in October 15, 2008 Trondheim, Norway 16 GPRS Input Files Keywords beginning: GRID_DATA, FLUID_DATA end: END, END_RESERVOIRS, END_WELLS Keyword values single value: NumOfWells 2 multiple values: GRIDSIZE 3 3 1 array: DX 100 50 50 table (two-dimensional array) October 15, 2008 Trondheim, Norway 17 GPRS Input Files Keyword is case sensitive INCLUDE for inserting files Comments by # a blank line is treated as a comment Spaces at beginning of line are ignored one space between two inputs; rest ignored n*X = X X … X (n times) 6*34 = 34 34 34 34 34 34 October 15, 2008 Trondheim, Norway 18 Basic GPRS Input # --- Field Data --------------------FieldName Field1 # --- Reservoirs Data --------------NumOfReservoirs 1 INCLUDE res_spe1.in END_RESERVOIRS # --- Wells Data ---------------------NumOfWells 2 INCLUDE wells_spe1.in END_WELLS # --- Control Data -------------------INCLUDE control.in October 15, 2008 Trondheim, Norway 19 Reservoir Input Grid data grid geometry and properties Fluid data phase and component properties Phase component relation data component existence in each phase October 15, 2008 Trondheim, Norway 20 Reservoir Input Rock fluid data relative permeability and capillary pressure Rock data rock compressibility Initial equilibrium data initial pressure/saturation, WOC/GOC depth October 15, 2008 Trondheim, Norway 21 Grid Data GRID_DATA ################### GRIDSIZE 10 10 3 DX 1000 DY 1000 DZ 100*20 100*30 100*50 PERMX 100*500 100*50 100*200 PERMY 100*500 100*50 100*200 PERMZ 100*500 100*50 100*200 PORO 0.3 TOPS 8325 TEMP 500 END October 15, 2008 Trondheim, Norway 22 Fluid Data FLUID_DATA ################## FLUID_TYPE BLACK_OIL NPHASES 2 NCOMPONENTS 2 PHASE_NAME OIL STANDARD_DENS 49.1 NUM_OF_TABLE_ENTRIES 2 # P BO # PSI RB/STB 14.7 1.03 1014.7 1.0106 PHASE_NAME WATER STANDARD_DENS 64.79 NUM_OF_TABLE_ENTRIES 2 # P BW # PSI RB/BBL 14.7 1.0410 264.7 1.0403 END October 15, 2008 VISC CP 1.2 1.2 RGO SCF/STB 0 0 VISC CP 0.31 0.31 RGW SCF/STB 0 0 Trondheim, Norway 23 Phase Component Relation Data PHASE_COMP_RELATION_DATA ################## # --- (nPhases by nComps) --#comp: oil water 1 0 #oil 0 1 #water END October 15, 2008 Trondheim, Norway 24 Rock Fluid Data ROCKFLUID_DATA ################## #OILWATERPERM OW NUM_OF_TABLE_ENTRIES 12 #TABLE Sw KRw KROw PCow 0.0 0.0 1.0 0 0.1 0.0 0.960 0 0.2 0.0 0.875 0 0.25 0.0 0.800 0 0.30 0.010 0.700 0 0.40 0.040 0.430 0 0.50 0.075 0.230 0 0.60 0.125 0.100 0 0.70 0.2 0.025 0 0.80 0.3 0.000 0 0.90 0.575 0.000 0 1.0 1.0 0.000 0 END October 15, 2008 Trondheim, Norway 25 Rock Data ROCK_DATA #################### # COMP. REF. PRES 3.E-6 14.7 October 15, 2008 Trondheim, Norway 26 Initial Equilibrium Data EQUILIBRIUM_DATA ################### # Swi Sor Sgr 0.15 0.00 0.00 # pres 4800 @depth 8400 WOC 8500 GOC 8200 END October 15, 2008 Trondheim, Norway 27 Standard Well Input Well specifications well name group name reservoir it belongs to producer or injector well status Well completions completion block index well index Well control strategy October 15, 2008 Trondheim, Norway 28 Grid Indexing i j k Grid index: (i-1) + (j-1)*Nx + (k-1)*Nx*Ny Nx: number of grid blocks in x direction Ny: number of grid blocks in y direction October 15, 2008 Trondheim, Norway 29 Well Specification Data # PRODUCTION WELLS # WELSPECS # WELL_NAME PROD01 END GROUP GRP1 RES_NAME RES1 TYPE P STATUS OPEN RES_NAME RES1 TYPE I STATUS OPEN # INJECTION WELLS # WELSPECS # WELL_NAME INJ01 END October 15, 2008 GROUP GRP1 Trondheim, Norway 30 Well Completion Data # COMPDAT number_of_perforations 1 # LOC(i,j,k) WI 399 9410 END October 15, 2008 Trondheim, Norway 31 Multi-Segment Wells # WELSEGS # PresDrop HFA END FlowModel DF number_of_segments 5 # No.of Branch Outlet Length Depth # Seg Num Seg Change Change # 0 default homogeneous segment 1 0 0 0.1 0 2 0 1 400 0 3 0 2 1 0 4 0 3 400 0 October 15, 2008 Trondheim, Norway Diam Rough 0.15 0.15 0.03 0.15 0.001 0.01 0.01 0.01 32 Multi-Segment Wells # CHOKE DEFINITION CHOKES number_of_chokes 1 # Seg num Choke model 4 0 Cv 0.66 # --- well completions (trajectory) ------# COMPDAT number_of_connections 2 #LOC(i,j,k) WI Seg No. 18 9705 15 23 9705 20 October 15, 2008 Trondheim, Norway 33 Well Control Data Control type ORATE WRATE GRATE LRATE BHP TBHP, TORATE, TWRATE, … October 15, 2008 Trondheim, Norway 34 Well Control Data # PRODUCTION WELLS # CTRL Q BHP ORATE 6000 1000.0 BHP 1000.0 END # INJECTION WELLS # CTRL Q BHP WRATE 6000 10000.0 BHP 10000.0 END October 15, 2008 std_den 49.10 std_den 64.79 Trondheim, Norway NComp OCon WCon 2 0 1 2 0 1 35 Well Control Data # PRODUCTION WELLS # CTRL tINI TBHP 0 TBHP 100 TBHP 200 TBHP 400 END tEND 100 200 400 500 BHP 4277.99 4300.55 4283.54 4296.56 # INJECTION WELLS # CTRL tINI TBHP 0 TBHP 100 TBHP 200 TBHP 400 END tEND 100 200 400 500 BHP NComp OCon WCon 5677.99 2 0 1 5645.23 2 0 1 5667.78 2 0 1 5679.29 2 0 1 October 15, 2008 Trondheim, Norway 36 Control Input Timestep initial, minimum/maximum and total Timestep control desired variable change and tuning factor Newton iteration minimum/maximum and fixed number Newton iteration control convergence criteria for variables/residuals October 15, 2008 Trondheim, Norway 37 Control Input Formulation type of variables to use, implicit levels Linear Solver solver/preconditioner and stopping criteria Debug enable/disable, frequency of debug output Restart enable/disable October 15, 2008 Trondheim, Norway 38 Control Input # TSINIT TSMAXZ 1 60 # TSTEP 3650 TSMIN 1 # --- iteration control -------# minNewtonIter maxNewtonIter 1 12 fixedNewtonIter 30 # --- time step size control --# dp ds dx w 200 0.2 0.02 0.5 # --- Newton iteration convergence control ---# MBE PEE Pchange Schange MFChange relWellEqE 0.1 0.02 0.0001 0.005 0.001 0.001 October 15, 2008 Trondheim, Norway 39 Control Input # --- solution method control --# variType nImpTypes Percentages(AIM) 1 1 # nImpVars transOption CFL_Limit 2 4 1.0 # --- linear solver control -----# Solver Precond. tol maxIter 4 3 1E-6 1500 reStartNo 10 # --- debug information --#Flag NumOfTimeSteps 1 10 # --- Re-start file setting information --#Flag NumOfTimeSteps output-control 0 1 1 October 15, 2008 Trondheim, Norway 40 Outline Brief Sotfware Description Input Files Reservoir Wells Control Output Files Adjoint-based Optimization October 15, 2008 Trondheim, Norway 41 Output Files One output file for each well name: reservoir_well.out example: RES1_PROD.out, RES1_INJ.out Debug output (optional) name: reservoir_debug.out example: RES1_debug.out Restat output (optional) reStartFile.dat October 15, 2008 Trondheim, Norway 42 Production Well Output Results for well: PROD in the reservoir: RES1 t (days) 0 1 2 3.59794 6.36781 11.0357 18.256 29.8017 46.1893 69.5331 October 15, 2008 BHP (psia) 4303.69 3856.11 3779.25 3723.07 3673.08 3630.13 3599.82 3583.64 3580.45 3585.56 g(Oil) (STB/day) 0 6000 6000 6000 6000 6000 6000 6000 6000 6000 Trondheim, Norway q(Water) (STB/day) 0 0 0 0 0 0 0 0 0 0 43 Injection Well Output Results for well: INJ in the reservoir: RES1 t (days) 0 1 2 3.59794 6.36781 11.0357 18.256 29.8017 46.1893 69.5331 October 15, 2008 BHP (psia) 5260.07 5766.46 5881.56 6021.55 6221.39 6512.4 6657.32 6584.5 6437.49 6332.23 g(Oil) (STB/day) 0 0 0 0 0 0 0 0 0 0 Trondheim, Norway q(Water) (STB/day) 0 -6000 -6000 -6000.01 -6000.77 -5999.78 -6000.65 -6000.07 -6000.01 -6000 44 Debug File Results of block pressure and saturations for reservoir: RES1 BlockNo t=0 0 1 2 398 399 P (days) 4781.88 4781.88 4781.88 . . . 4781.88 4781.88 T So Sw xi yi 40 40 40 0.85 0.85 0.85 0.15 0.15 0.15 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 40 40 0.85 0.85 0.15 0.15 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 0.322 0.678 1.0 0.449 0.551 1.0 0.651 0.342 1.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 t=69.5331 (days) 0 5460.95 40 1 5286.71 40 2 5144.51 40 . . . October 15, 2008 Trondheim, Norway 45 Restart File 6000 0 9313.02 1 9208.15 2 9144.2 3 9099.27 4 9064.57 5 9036.33 500 500 500 500 500 500 0.193141 0.194062 0.195721 0.198067 0.200184 0.205041 0.806859 0.805938 0.804279 0.801933 0.799816 0.794959 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 .. . October 15, 2008 Trondheim, Norway 46 Outline Brief Sotfware Description Input Files Reservoir Wells Control Output Files Adjoint-based Optimization October 15, 2008 Trondheim, Norway 47 Adjoint-based Optimization MATLAB code in seven folders main script ResOptDT.m in \main folder simulation data in \data folder Optimization parameters in \data\adjoint.in Features available exact gradient: BHP control + rate constraints approximate gradient: rate control history matching: permeability and porosity October 15, 2008 Trondheim, Norway 48 adjoint.in NGRIDS 605 NCOMPONENTS 2 NPHASES 2 OIL_DENSITY 49.10 WATER_DENSITY 64.79 NPROD 4 NINJ 1 October 15, 2008 // lbm/scf // lbm/scf Trondheim, Norway 49 adjoint.in OIL_PRICE 80 WATER_INJ_COST 0 WATER_PROD_COST 5 TSTEPS 4 RESERVOIR_NAME RES1 MAX_ITERS 20 TOT_CNSTRNT 4000 October 15, 2008 // $/bbl // $/bbl // $/bbl // resevoir name as in gprs.in // of optim algorithm (orig 2) // rate constraint (bbl/day) Trondheim, Norway 50 adjoint.in NPERFS //inj prod 5 5 5 5 5 0 LOWER_BNDS //inj prod 1000 1000 1000 UPPER_BNDS //inj prod 10000 10000 10000 CONTROL_TABLE //dt inj 180 10000.00 1000.0 1000.0 180 10000.00 1000.0 1000.0 180 10000.00 1000.0 1000.0 180 10000.00 1000.0 1000.0 180 10000.00 1000.0 1000.0 180 10000.00 1000.0 1000.0 October 15, 2008 1000 1000 10000 prod 1000.0 1000.0 1000.0 1000.0 1000.0 1000.0 10000 Trondheim, Norway 1000.0 1000.0 1000.0 1000.0 1000.0 1000.0 51 Sample Files Black-oil model SPE1: the first SPE comparative project SPE1_HW: non-conventional well and SPE1 BlackOW: water-oil two phases with water injection MSWell3Laterals: gas-oil two phases, three lateral multiple segment wells, drift-flux wellbore flow model Black3PinjGas: gas-oil-water three phases with gas injection Black3PinjWater: gas-oil-water three phases with water injection unstruc_mp: unstructured grids and multi-point flux with water-oil two phases October 15, 2008 Trondheim, Norway 52 Sample Files Compositional model CO2-H2O: sample for CO2 sequestration in aquifer; oilgas two phases, one prod. well and one gas inj. well CO2-H2O-fast: fast flash method for CO2-H2O COMP: four comp., oil-gas two phases, one prod. well CompSPE9: nine comp., oil-gas two phases, one prod. well CompSPE9-3000: as CompSPE9 sample but initial reservoir pressure is 3000 psia and initial fluid is gas Comp2PinjGas: four comp., oil-gas two phases, one prod. well and one gas inj. well Comp3PinjGas: four comp., oil-gas-water three phases, one prod. well and one gas inj. well Comp3PinjWater: four components, oil-gas-water three phases, one prod. well and one water inj. well October 15, 2008 Trondheim, Norway 53 Enhancements \CO2H2OfastFlash: fast flash for CO2-H2O system in CO2 sequestration in aquifers (replaced by LookUp-K) \LookUp-K: lookup-K approach for flash in compositional simulation \Diffusion: diffusion & dispersion in compositional simulation \inactiveCells: removing inactive cells \Multi_rockfluid: implementing multiple rock fluid model October 15, 2008 Trondheim, Norway 54 Enhancements \MSWells: implementing multi-segment well modeling \relativePermeability: hysteresis of relative permeability, Stone I model for three phase relative permeability \SAMG preconditioner: SAMG preconditioner in the iterative linear solvers \Time Dependent Well Control: implementing time-dependent well controls \Tracer Flow: implementing tracer flow. October 15, 2008 Trondheim, Norway 55 Summary GPRS: research tool via portable source code Now some representative simple examples In the afternoon more realistic cases Special needs/questions contact: Huanquan Pan (hqpan@stanford.edu) me (echeverr@stanford.edu) October 15, 2008 Trondheim, Norway 56 Some more questions? October 15, 2008 Trondheim, Norway 57 Outline Tutorial Presentation Simple Examples Black Oil Compositional Adjoint-based Optimization Hands-on Examples Simulation Adjoint-based Production Optimization Derivative-Free History Matching October 15, 2008 Trondheim, Norway 58 II. Simple Examples October 15, 2008 Trondheim, Norway 59 Simple Black-Oil (SPE1) 10 x 10 x 3 grid 3 distinct layers Black-oil oil-water-gas model One gas injector One producer controlled by oil rate Ten year production October 15, 2008 Trondheim, Norway 60 Unstructured Grid and Multi-Point Flux 301 x 1 x 1 grid Volume and connection list Black-oil oil-water model One water injector One producer controlled by oil rate Long production October 15, 2008 Trondheim, Norway 61 Compositional (SPE3) 5 x 5 x 5 grid Homogeneous reservoir permx = 10*permz 9 components and 2 phases (gas-oil) One producer controlled by BHP 2000 day production October 15, 2008 Trondheim, Norway 62 Adjoint-based Optimization 11 x 11 x 5 grid 5 distinct layers Black-oil oil-water model Five-spot pattern One water injector All wells controlled by BHP 750 day production 25 control intervals (125 control variables) + total producing liquid rate constraint October 15, 2008 Trondheim, Norway 63 Outline Tutorial Presentation Simple Examples Black Oil Compositional Adjoint-based Optimization Hands-on Examples Simulation Adjoint-based Production Optimization Derivative-Free History Matching October 15, 2008 Trondheim, Norway 64 III. Hands-on Examples October 15, 2008 Trondheim, Norway 65 Optimizing Smart Wells (from Sarma et al.) 1 ‘smart’ horizontal injector 1 ‘smart’ horizontal producer 45 segments in each Two-phase flow, no gravity 1 PV injection in reference Segments under BHP control October 15, 2008 Adapted from Brouwer and Jansen, SPE 78278 Trondheim, Norway 66 Optimizing Smart Wells (from Sarma et al.) 45X45X1 (2025) Cells 5 control changes in time Unknowns: (45+45)*5 =450 Objective: maximize NPV Max inj. rate ≤ 2710 bbl/day October 15, 2008 Adapted from Brouwer and Jansen, SPE 78278 Trondheim, Norway 67 Optimizing Smart Wells (from Sarma et al.) October 15, 2008 Trondheim, Norway 68 A Section of SPE10 (from Dewi Rahmawati et al.) Log10(K)[mD] P3 P4 10000mD 30 25 1000mD 20 INJ x 100mD 15 10 10mD 5 0 October 15, 2008 P1 0 P2 5 10 15 20 y 25 30 Trondheim, Norway 35 40 0 69 History Matching Optimization • History Matching and Optimization • Generic Workflow • Case Study: Stanford VI Sector • History Matching Results October 15, 2008 Trondheim, Norway 70 History Matching observe m* O* (m* ) O (m ) mĚ‚ = argmin || O(m ) − O(m ) || * m October 15, 2008 m∈M Trondheim, Norway 71 Integrating Data • Model m: facies • Observable O(m) = [Op(m) Os(m)] – Op(m): production data – Os(m): seismic data • Scaling: Op(m) ~ Os(m) October 15, 2008 Trondheim, Norway 72 Observables • Production Op(m) = [Owi(m) Oop(m)] – Owi(m) : total water injection – Oop(m): cumulative oil production • Seismic Os(m) = [Os1(m) Os2(m)] – Os1(m) : crosswell section 1 – Os2(m) : crosswell section 2 October 15, 2008 Trondheim, Norway 73 Observables • Production Op(m) = [Owi(m) Oop(m)] • Seismic Os(m) = [Os1(m) Os2(m)] • Two types of seismics – wave velocity (VP) – diffraction tomography October 15, 2008 Trondheim, Norway 74 Cost Function • Flexible cost function || O(m ) − O(m* ) || ωp || Op (m ) − Op (m* ) || +ωs || Os (m ) − Os (m* ) || • Weights modified along optimization • Regularized: October 15, 2008 + λ || m − mprior || Trondheim, Norway 75 Seismic Data: Tomography • VP cannot be directly measured • VP indirectly estimated – multiple sources – inversion process • Diffraction tomography October 15, 2008 Trondheim, Norway source rG rS receptor 76 Tomography Results model m VP October 15, 2008 tomography Trondheim, Norway 77 Tomography Results true model m* VP October 15, 2008 tomography Trondheim, Norway 78 History Matching Optimization • History Matching and Optimization • Generic Workflow • Case Study: Stanford VI Sector • History Matching Results October 15, 2008 Trondheim, Norway 79 Workflow m* less parameters many parameters Op(m) ξ KPCA m rock properties to optimizer ||.|| Os(m) facies October 15, 2008 Trondheim, Norway 80 Principal Component Analysis • Principal Component Analysis (PCA) • Data compression approach • Based on a priori statistical information October 15, 2008 Trondheim, Norway 81 Cost Function Gradients • Cost function = production + seismic • No strategy for exact gradients • Derivative-free optimizer • Fairly efficient optimization scheme • Very easy to implement and robust October 15, 2008 Trondheim, Norway 13 82 History Matching Optimization • History Matching and Optimization • Generic Workflow • Case Study: Stanford VI Sector • History Matching Results October 15, 2008 Trondheim, Norway 83 Some Results • 20x20x10 sector from zone 3 • m: facies • k, φ: regression from well location • VP as seismics • PCA: 30 coefficients retained • Measured data only after 3 months October 15, 2008 Trondheim, Norway 84 Production Data injector producer 5 spot October 15, 2008 Trondheim, Norway 85 Seismic Data injector producer 5 spot October 15, 2008 Trondheim, Norway 86 Velocities (VP) z z x y October 15, 2008 true initial after production alternating Trondheim, Norway 87 Facies y x LAYER 1 October 15, 2008 true initial after production alternating Trondheim, Norway 88 Facies y x LAYER 1 October 15, 2008 true initial after production alternating Trondheim, Norway 89 Facies y x LAYER 4 October 15, 2008 true initial after production alternating Trondheim, Norway 90 Facies y x LAYER 4 October 15, 2008 true initial after production alternating Trondheim, Norway 91 Facies y x LAYER 6 October 15, 2008 true initial after production alternating Trondheim, Norway 92 Facies y x LAYER 6 October 15, 2008 true initial after production alternating Trondheim, Norway 93 Facies y x LAYER 10 October 15, 2008 true initial after production alternating Trondheim, Norway 94 Facies y x LAYER 10 October 15, 2008 true initial after production alternating Trondheim, Norway 95 Thank you for attending! October 15, 2008 Trondheim, Norway 96 Short Course on Stanford GPRS (General Purpose Research Simulator) D. Echeverría Ciaurri and H. Pan NTNU Workshop P2 October 15, 2008 October 15, 2008 Trondheim, Norway 97