Jump to content
Geochemist's Workbench Support Forum


  • Posts

  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

elg0086's Achievements


Newbie (1/14)



  1. Hi Brian, Thanks for the reply. Further troubleshooting may have solved the problem. If there is still an issue after the current model run is complete I will upload the script. Thank you. ~Erik
  2. Hi, I am testing out a custom rate law script file in an X2t model. The model has 4 injection wells and 100 nodes. However, the model does not acknowledge the conditional statement (pH) in any of the nodes except the injection well nodes. The injection solution has a pH less than 6. The kinetic mineral is present in all the nodes. Am I missing something in the script? IF pH < 6 THEN 20 ELSE 40 20: rate = 0.00000000052481 * totmoles ("H+") ^ 0.72 GOTO 60 40: rate = 0.0 60: RETURN rate Regards, Erik
  3. I have a question about time stepping in ChemPlugin. The example scripts provided on the Chemplugin website use the "c.reportTimeStep" command but my script contains time-dependent conditional statements within a WHILE loop. In order to have better control over the time step, "deltat" is set to a fixed integer. As I understand it, the c.reportTimeStep command will use time step criteria established for an instance (i.e. "delxi," "step increase," etc..) to determine an appropriate step. However, based on the explanation of the courant number in the user guide: "The Courant condition requires that a time step not exceed the time required to displace all the fluid from a ChemPlugin instance" Following this rule as a guide, is it appropriate to define a time step as a fixed integer (i.e. 4000 seconds)? while True: deltat = 4000 if current_time >= acid_start and current_time < close_time gw_link.FlowRate(0, "m3/s") gw_link.Transmissivity(0, "m3/s") acid_link.FlowRate(discharge, "m3/s") acid_link.Transmissivity(trans, "m3/s") for c in cp: deltat = (deltat) for c in cp: if c.AdvanceTimeStep(deltat):end_run(0) for c in cp: if c.AdvanceTransport():end_run(-1) for c in cp: if c.AdvanceChemical():end_run(-1) Regards, Erik
  4. Brain, Thank you for the response. I am currently using the first approach you mention, but your second suggestion is also intriguing and will prove useful in the future. Thank you! Regards, Erik
  5. Brian, Thank you for the response and I apologize for any ambiguity. The solution leaving the last node of the domain is transformed prior to looping back to the first instance. Within this loop sulfuric acid is added to achieve a target concentration of 10 g/l (sulfuric acid). However, the mass required to achieve this concentration is an unknown and controlled by reactions within the domain. Currently, I have a separate instance linked between the last node and first node to allow for this transformation. However, I have not quite figured out the best method to determine the difference between the final node and target chemistry (H+ and SO4--), and then configure the "transformation" instance to reflect this difference. Regards, Erik
  6. Brian, I have a question which builds on the topic found here: https://forum.gwb.com/index.php?/topic/2483-chemplugin-pore-volume-pv-and-extendrun/&tab=comments#comment-6328 Part of my model uses the output solution from the last instance and "loops" it back to the first instance. I was hoping to adjust the pH and sulfate entering the first node based on the output concentrations from the last node. However, calling the cp.Config command within a time marching loop is not possible (I expected this would not be possible). I would like to confirm that the "cp.Config" command will not run within a time marching loop. Another option I explored was running my model in "stages" using the "extend run" command. According to the aforementioned forum topic, kinetic minerals present within an instance will reset after calling the "extend run" command. Currently I have one kinetic mineral but will possibly be adding up to eight additional minerals. Furthermore, sorption and precipitation will be enabled, presenting a daunting task to reset each instance with concentrations and mass from the previous day. Currently, I have a work-around model involving an instance with a sliding pH that might achieve 90% of what I am attempting to simulate. In summary, to what extent can the chemistry of a system be dynamically altered in a time marching loop? In other words, is it possible to actively read and write input/output chemistry during a simulation? Thank you for your time! Regards, Erik
  7. Melika, Looking at the output text now, it makes sense to spell out the element since it is printed as such. Most of the literature provides examples of aqueous solutions (H+, Fe++) and I was just using Cu and Fe as the element name. Thank you for clarifying the syntax. -Erik
  8. Hi, I am attempting to retrieve results in ChemPlugin using the command my_result = (cp[nx - 1].Report1("concentration elements fluid", "moles")) Is there a way to point to a specific element (scaler value) using a variation of this command line? i.e. my_result = (cp[nx - 1].Report1("concentration elements fluid Cu", "moles")) Thanks. Regards, Erik
  9. Brian, Thank you for the response as it cleared up some of my questions. I'm still getting my head around the workflow of Chemplugin with python as the client so I imagine I will have more questions in the future. Thank you. -Erik
  10. Brian, I apologize if the answer to this question is already posted in the manual but I could not readily find it. How do you set units for the simulation parameters? The images below are from two different tutorials and neither directly sets units but references them differently with # meters or # cm. Also, this link appears to be broken: https://academy.gwb.com/RTM1.py Regards, Erik
  11. Hi, I have been working on an X2t model and would like to add a script to an aqueous species in the reactants pane. I am using a recirculating well (located in the last node) to re-inject solution into the first node. Is there a command to reference an aqueous species concentration in the recirculating fluid at the end of each time step? More specifically, I am trying to determine a species concentration of the recirculating fluid at each time step and then adjust to a desired concentration for the start of the next time step. I do not want to fix the activity of the species since I am allowing for reactions along the flow path. Conceptually, I'm interested in mineral dissolution by an acid in a closed loop column with small additions of acid to maintain a constant starting acid concentration. Thank you! Regards, -Erik
  12. Hi, When a mineral precipitates in an X2t or X1t node, is it capable of redissolving if the system changes later in the simulation? Is there a way to remove precipitated minerals from the system? From what I understand porosity will reflect any changes in dissolution and precipitation. Thanks, -Erik
  13. Brian, Thanks for the response. Hopefully, this feature can be incorporated into a future release. I am currently working on a closed-circuit series leaching test and modeling in X1t is a time saver. -Erik
  14. In X1t, is it possible to recirculate a solution from the final node, in other words use the final node solution as an inlet solution? Thank you. -Erik
  • Create New...