Jump to content
Geochemist's Workbench Support Forum

All Activity

This stream auto-updates     

  1. Last week
  2. Hey Brian, Thank you very much for the download link. I really appreciate your support. Best regards, Pom!
  3. Hi Pom, I apologize for the inconvenience. LinkedIn has updated their API, so we need to do some work on the website. I'll send you a different link to download the software. Regards, Brian Farrell Aqueous Solutions LLC
  4. Hello, This is Anupam. Recently I have applied for the GW-Student Edition. After verification, I have received the download link. Initially, I have tried to download the software but due to some internet issue, my download stopped. But the next time when again trying to download the software it is showing some error message "Request token retrieval failed". Need suggestion and help to learn how to download successfully. *** Error Screenshot attached *** Thanks! Pom!
  5. Earlier
  6. Thanks Brian, The software is great. Very very useful for my work.
  7. Hi Brendan, You're allowed to move the software three times before requiring a reset from us. You should now be able to move the software back to your desktop. I hope you enjoy using the software. Regards, Brian Farrell Aqueous Solutions
  8. When I try to deactivate my license on my desktop to use GWB on my laptop I get the error message: Return failed 7466; The return of the fulfillment is denied by the return policy because max return exceeded. I suppose I may have exceeded the limit for switching between machines but I have been in the field requiring me to switch from laptop to a better desktop monitor. I just need to switch it back to my desktop in the lab now. Is it be possible to switch this last time?? Thanks Brendan Moran
  9. Hi, You probably have an incomplete chemical analysis for one or more samples. If you don't constrain all the species in the reaction to form a mineral, you won't be able to calculate its saturation state. If you'd like someone to take a closer look, please attach your script. Regards, Brian Farrell Aqueous Solutions LLC
  10. I am trying to calculate mineral saturations in GSS and the entire row is blank for certain minerals. I have tried to look on the forums for more information but I am not sure what the problem is.
  11. Brian Farrell

    comment lines in *.rea files

    Hi Helge, If you're preparing a script in a text editor, like Notepad, you can start a comment line with a #. Regards, Brian Farrell Aqueous Solutions LLC
  12. Hello everybody, is it possible to place comment lines in *.rea files, which are not processed by GWB? Best regards, Helge
  13. Hi Helge, When species contain brackets in the name you will need to put quotes around the name. It is preferred to name species with parenthesis instead of brackets to avoid having to add these quotes. Both single and double quotes will work. Since your string is already inside single quotes, adding double quotes around the name would be easiest: myGWB.results('concentration aqueous "Ca3[Nd(OH)6]+++"', 'molal') Hope this helps, Dan
  14. Hello everybody, in the attached test case I can retrieve all concentrations with species = myGWB.results("species") conc = myGWB.results("concentration aqueous", "mol/kg") print "\nThere are" , len(species) , "aqueous species.\n" for i in range(len(species)): print "%-4s = %10.4g mol/kg" % (species[i], conc[i]) However, if I export the results to file with ResultFile = Testcase + '_mod.out' fobj_ResultFile = open(ResultFile,'w') fobj_ResultFile.write(Testcase + '\t' + 'pcH' + '\t' + str(-(math.log10(myGWB.results('concentration aqueous H+', 'molal')[0]))) + '\n') fobj_ResultFile.write(Testcase + '\t' + 'conc_element(Nd)' + '\t' + str(myGWB.results('concentration Neodymium', 'molal')[0]) + '\n') fobj_ResultFile.write(Testcase + '\t' + 'conc_solute(Nd(OH)2<+>)' + '\t' + str(myGWB.results('concentration aqueous Nd(OH)2+', 'molal')[0]) + '\n') fobj_ResultFile.write(Testcase + '\t' + 'conc_solute(Nd(OH)<2+>)' + '\t' + str(myGWB.results('concentration aqueous Nd(OH)++', 'molal')[0]) + '\n') fobj_ResultFile.write(Testcase + '\t' + 'conc_solute(Nd<3+>)' + '\t' + str(myGWB.results('concentration aqueous Nd+++', 'molal')[0]) + '\n') fobj_ResultFile.write(Testcase + '\t' + 'conc_solute(Nd(OH)3<0>)' + '\t' + str(myGWB.results('concentration aqueous Nd(OH)3', 'molal')[0]) + '\n') fobj_ResultFile.write(Testcase + '\t' + 'conc_solute(Nd(OH)4<->)' + '\t' + str(myGWB.results('concentration aqueous Nd(OH)4-', 'molal')[0]) + '\n') fobj_ResultFile.write(Testcase + '\t' + 'conc_solute(NdCl<2+>)' + '\t' + str(myGWB.results('concentration aqueous NdCl++', 'molal')[0]) + '\n') fobj_ResultFile.write(Testcase + '\t' + 'conc_solute(NdCl2<+>)' + '\t' + str(myGWB.results('concentration aqueous NdCl2+', 'molal')[0]) + '\n') fobj_ResultFile.write(Testcase + '\t' + 'conc_solute(Ca[Nd(OH)3]<2+>)' + '\t' + str(myGWB.results('concentration aqueous Ca[Nd(OH)3]++', 'molal')[0]) + '\n') fobj_ResultFile.write(Testcase + '\t' + 'conc_solute(Ca2[Nd(OH)4]<3+>)' + '\t' + str(myGWB.results('concentration aqueous Ca2[Nd(OH)4]+++', 'molal')[0]) + '\n') fobj_ResultFile.write(Testcase + '\t' + 'conc_solute(Ca3[Nd(OH)6]<3+>)' + '\t' + str(myGWB.results('concentration aqueous Ca3[Nd(OH)6]+++', 'molal')[0]) + '\n') fobj_ResultFile.close() concentrations for species whose name contains [ and ] are exported as -999999.0. I fail to locate my mistake. Best regards, Helge Helge 0043.rea Nd.dat 0043_mod.py 0043_mod.out
  15. elg0086

    ChemPlugin Setting Units

    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
  16. Brian Farrell

    ChemPlugin Setting Units

    Hi Erik, Ok, thanks for the additional information. A very simple strategy for that intermediate instance would be to fix pH and charge balance on SO4--. Assuming reaction within the domain increases pH, so that you’re always adding sulfuric acid to the effluent, the program will add enough H+ to achieve the desired pH, along with SO4-- to balance it out. If reaction along the domain were to decrease pH, however, the program would remove H+ and SO4-- from the intermediate instance to maintain the pH. In that case, the configuration is not realistic. I’m assuming here that you’re monitoring pH in the real world as a proxy for sulfuric acid concentration, since that’s an effectively instantaneous measurement, but that may not be the case. If that’s not quite right, a more complex solution might be to do something like the second task in the Time Marching Loops lesson in the ChemPlugin Modeling with Python Academy. In that example, the client titrates NaOH into a fluid and queries ChemPlugin for the pH after each small addition. It stops the titration when the desired pH is achieved. Perhaps you could titrate sulfuric acid into the fluid and query ChemPlugin for whatever you need, then once you reach that target, send that fluid to the inlet of your domain. Hope this helps, Brian
  17. elg0086

    ChemPlugin Setting Units

    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
  18. Brian Farrell

    ChemPlugin Setting Units

    Hi Erik, Can you clarify whether you want the fluid that flows out of the last node to loop directly into the first node, or whether it should be transformed in some way? If it’s being transformed, can you please elaborate on how this is done? What’s the process? Thanks, Brian
  19. elg0086

    ChemPlugin Setting Units

    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
  20. Hi Melika, Thanks for your reply. when I submitted my case in the forum, an error message appeared and I ended up submitting the question 4 times without knowing it was posted at the first attempt. sorry about that. I used X1t app to simulate the acidized core flooding experiments and match the laboratory ICP result. the chemical equation is as follows : CaCO3 + 2HCl ---> CaCl2 + CO2 + H2O my concerns are the followings : How precisely can I put the constraints on the initial system for the rock sample and the injected acid solution? I am a little bit confused about the input units ( mg/kg, free kg, mmol/kg, ..etc). I am only aware of the limestone rock sample weight ( 50 g) , porosity (22%) and the concentration of the injected acid (pH, wt% ). how would I put the value of the followings with their units: H2O .... free kg H+ ..... 4 (pH) .. for example ! Cl- ... Ca++ ( mineral or ... ) ... HCO3- .... do I need to equilibrate the fluid and the rock in the initial pane in constraints on the initial system, and if so, how would I equilibrate them? injection rate was 10 cm3/min. how would I mimic the laboratory injection rate within the X1t the discharge ( injection rate) unit (cm/s, cm3/cm2/s, ..etc)? The laboratory domain was a cylindrical core sample (2.5 cm in diameter ⨉ 5 cm long) , how would I simulate that domain in the model, I used a spherical domain with r1: 1.25 cm, r2: 1.26 cm and nodes (Nx) = 5, please advise the appropriate way. I have attached 2 different files. please advise which one of them i should be simulating my lab work with. Carbonate acdizing.x1t Aziz HCl.x1t
  21. Hi Abdulaziz, The main purpose of The Geochemist’s Workbench® software package is geochemical reaction modeling and reactive transport modeling using parameters like rate constants and diffusion constants. You may estimate their optimum values by trial and error, though. For example, the Microbial Populations lesson on the GWB Online Academy describes how to adjust the rate constant to visually match experimental data. You can set most basis entries as bulk or free constraints. For a bulk constraint, the value you set refers to the entire thermodynamic component, whereas for a free constraint, it refers to the particular species only. The Ca++ component, for example, might include the Ca++ species, as well as Ca(OH)2(aq), CaHCO3(aq), etc. If you set 10 “mg/kg” Ca++, the concentration is for the sum of those species. If you set 10 “free mg/kg” Ca++, though, the concentration refers only to the individual Ca++ species. If you are looking at the reaction between the fluid, and the rock, as the fluid traverse through it, you don't probably need to equilibrate the fluid and rock. For more information, please read section 3.10 in the GWB Reaction Modeling Guide. In a spherical domain, the length of the domain is r2-r1. Please read section 3.1 in the GWB Reactive Transport Modeling Guide. In future, please don't post your question in different topics. If you need further help, please attach your script. Thanks, Melika Sharifi Aqueous Solutions LLC
  22. elg0086

    Results command ChemPlugin

    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
  23. Melika Sharifi

    Results command ChemPlugin

    Hi Erik, You'll have to type: my_result = (cp[nx - 1].Report("concentration elements fluid Cupper", "moles")). Bests, Melika Sharifi Aqueous Solutions LLC
  24. 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
  25. Melika Sharifi

    can't retrieve H+ molal in python script

    Hi Helge, I'm not sure which dataset you are using, so I am not able to give you an exact response. It looks like in your script, you have not decoupled Tc(VII) from Tc(IV). If you use "aqueous" in your command, it will give you the free concentration of that specific species in solution. Consider thermo.tdat dataset when Fe(II) is not decoupled from Fe(III), myGWB.results('concentration aqueous Fe++', 'molal')[0], will give you the concentration of Fe++ aqueous species, and myGWB.results('concentration aqueous Fe+++', 'molal')[0] will give you the concentration of Fe+++ aqueous species. While myGWB.results('concentration Fe++', 'molal')[0], will give you the total concentration of component Fe(II), and myGWB.results('concentration Fe+++', 'molal')[0] will give you the total concentration of component Fe(III) (i.e. all species with Fe(III) such as Fe(OH)3, Fe+++, Fe2O3, etc). Hope this helps. Bests, Melika Sharifi Aqueous Solutions LLC
  1. Load more activity
×