Presentation is loading. Please wait.

Presentation is loading. Please wait.

Component-Based Implementation of STOMP Yilin Fang Bruce Palmer Pacific Northwest National Laboratory Silver Spring, 19-20 July 2007.

Similar presentations


Presentation on theme: "Component-Based Implementation of STOMP Yilin Fang Bruce Palmer Pacific Northwest National Laboratory Silver Spring, 19-20 July 2007."— Presentation transcript:

1 Component-Based Implementation of STOMP Yilin Fang Bruce Palmer Pacific Northwest National Laboratory Silver Spring, 19-20 July 2007

2 2 STOMP BRIEF REVIEW General-purpose tool addressing nonisothermal conditions, multiple-phase systems, nonaqueous phase liquids, subsurface reactive transport Integrated-volume finite-difference discretization Coupled flow equations solved with Newton- Raphson iteration Variable operational modes depending on governing equations solved (water mass, air mass, oil mass, salt mass, thermal energy): STOMP-W, STOMP-WAE,… Currently converted in FORTRAN 90, run on a variety of platforms

3 3 Transport equations solved after flow equations Coupled transport and chemistry systems solved using operator-splitting, chemistry system is solved using Newton Raphson iteration Petsc library is used to solve the linearized matrix equations for flow and transport Mode selected: STOMP-W-sc

4 4 STOMP-W-sc Flow Chart Zero Initialize Field prop Boundary prop Interior fluxes Boundary fluxes Setup Stepper Time stepping N-R iteration Coupled flow Sources Field prop Boundary prop Interior flux Boundary flux Jacobian interior Jacobian boundary Solve Transport Chemistry I/O

5 5 Status of Componentization Completed (Initial) Solver component Chemistry component Under development Grid component

6 6 Solver Component package solver version 1.0 { interface SolverPort extends gov.cca.Port { void set_size( in array luk, in array lsize, in array ifld, in array jfld, in array kfld); // define problem size; void set_inact_node(in array ixi); // inactive node; void set_jac_pointer(in array imxp); // jacobian pointer; void set_mat_diag(in array adg); // diagonal block; void set_mat_bottom(in array azl); // bottom block; void set_mat_top(in array azu); // top block; void set_mat_west(in array axl); // west block; void set_mat_east(in array axu); // east block; void set_mat_south(in array ayl); // south block; void set_mat_north(in array ayu); // north block; void set_rhs(in array apv); // right hand side element; void solver_solve( in int iter,out int icnv ); // assemble and solve equation; }

7 7 Chemistry Component package speciation version 1.0 { interface SpeciationPort extends gov.cca.Port { void set_grid_volume(in array vol); // grid volume; void set_porosity(in array por); // porosity; void set_diff_porosity(in array pord); // diffusion porosity; void set_tot_porosity(in array port); // total porosity; void set_tot_conc(in array c); // total transport concentration; void set_spec_conc(in array sp_c); // individual species conc at present time; void set_spec_conco(in array sp_co); // individual species conc at previous time; void set_lithology(in array rs_s); // mineral property; void set_min_conc(in array sp_cmn); // mineral concentration; void set_min_vf(in array por_m); // mineral volume fraction; void set_wat_sat(in array sl); // water saturation; void set_gas_sat(in array sg); // gas saturation; void set_wat_dens(in array rhol); // water density; void set_particle_dens( in array rhos ); // particle density; void set_temperature( in array t ); // temperature; void speciation(out int iecke); // solve }

8 8 Grid Component Current efforts are focused on encapsulating the grid functionality into a grid component and replacing the current structured orthogonal grids in STOMP with grids being developed under the Interoperable Technologies for Advanced Petascale Simulations (ITAPS) project.

9 9 Possible Mesh and Operator Components ITAPS Libraries MeshOperators STOMP ITAPS MeshOperators STOMP

10 10 Issues and Further Work Borrow function has to be called to pass to functions defined in ports the scalars and arrays which are not defined as targets or pointers Hard to figure out the stride in borrow function for multi- dimension arrays Need to abstract chemistry component Machine architecture related issues Need of more advanced solver technologies because of the introduction of new grids, Further componentizing the remaining STOMP code, and implementing the algorithms to couple the STOMP code to other models


Download ppt "Component-Based Implementation of STOMP Yilin Fang Bruce Palmer Pacific Northwest National Laboratory Silver Spring, 19-20 July 2007."

Similar presentations


Ads by Google