Question about adding observations for subsurface soil moisture/saturation level

105 views
Skip to first unread message

Yu Zhang

unread,
Oct 19, 2021, 11:54:38 PM10/19/21
to Amanzi-ATS Users
Dear Amanzi-ATS community,

Hope this email finds you well. 

Recently, we are running a surface and subsurface integrated simulation on a coastal watershed by using ATS. In order to compare our simulation results with observations, especially the groundwater table and soil moisture, we would hope to add some observations in the input file to extract the subsurface information at multiple depths, such as the pressure and saturation_liquid, on a model cell that is at the same location of the field groundwater measurement. For example, I defined the location of the point at different depths in the "regions" ParameterList as (from the ground surface to several meters below the ground surface with a depth interval of 0.1 m (the interval is larger in the deeper layers), which is consistent with the layer thickness in the ATS mesh file) 

<ParameterList name="observation point1">

  <ParameterList name="region: point">

    <Parameter name="coordinate" type="Array(double)" value="{477454, 4281310, 11.2134}"/>

  </ParameterList>

</ParameterList>


<ParameterList name="observation point2">

  <ParameterList name="region: point">

    <Parameter name="coordinate" type="Array(double)" value="{477454, 4281310, 11.1134}"/>

  </ParameterList>

</ParameterList>

<ParameterList name="observation point3">

  <ParameterList name="region: point">

    <Parameter name="coordinate" type="Array(double)" value="{477454, 4281310, 11.0134}"/>

  </ParameterList>

</ParameterList>


To make it simple here, I skipped the definition of other points here (we defined 14 points in total). 
Then, I added the observations, like 

    <ParameterList name="subsurface water content1" type="ParameterList">

      <Parameter name="variable" type="string" value="water_content" />

      <Parameter name="region" type="string" value="observation point1" />

      <Parameter name="functional" type="string" value="point" />

      <Parameter name="delimiter" type="string" value=" " />

      <Parameter name="location name" type="string" value="cell" />

      <Parameter name="observation output filename" type="string" value="water_content1.dat" />

      <Parameter name="times start period stop" type="Array(double)" value="{0.0,43200.0,-1.0}" />

    </ParameterList>


    <ParameterList name="subsurface water content2" type="ParameterList">

      <Parameter name="variable" type="string" value="water_content" />

      <Parameter name="region" type="string" value="observation point2" />

      <Parameter name="functional" type="string" value="point" />

      <Parameter name="delimiter" type="string" value=" " />

      <Parameter name="location name" type="string" value="cell" />

      <Parameter name="observation output filename" type="string" value="water_content2.dat" />

      <Parameter name="times start period stop" type="Array(double)" value="{0.0,43200.0,-1.0}" />

    </ParameterList>


    <ParameterList name="subsurface water content3" type="ParameterList">

      <Parameter name="variable" type="string" value="water_content" />

      <Parameter name="region" type="string" value="observation point3" />

      <Parameter name="functional" type="string" value="point" />

      <Parameter name="delimiter" type="string" value=" " />

      <Parameter name="location name" type="string" value="cell" />

      <Parameter name="observation output filename" type="string" value="water_content3.dat" />

      <Parameter name="times start period stop" type="Array(double)" value="{0.0,43200.0,-1.0}" />

    </ParameterList>


However, the simulation crashed at the start of the simulation when it tried to extract the water content information. Here are some details:
1) the simulation generated  water_content1.dat file, but no  water_content2.dat and  water_content3.dat.    
2) there is only one line of output in the water_content1.dat file: 0.0000000000000000e+00  NaN
3) the model verbose information seems normal (I used "extreme" level) and it is not very helpful to diagnose this issue. 

I would hope to get your comments and suggestion on this:
1) Is my way of extracting the subsurface water content information of a specific location correct? 
2) Are there any examples from other users? 
3) From a previous conversation, it seems that ATS is able to output the water table directly. Is that available to use? Any examples? 
4) If you need more information on this, where should I add the verbose? 

Please contact me if you need any further information. Thank you very much! 

Best,
Yu Zhang


Bo Gao

unread,
Oct 20, 2021, 12:45:16 AM10/20/21
to Yu Zhang, Amanzi-ATS Users
Hi Yu,
     I guess I may provide some help for this problem. You can have a try first.

     - In Observation: I guess you may want "saturation_liquid" as the variable for liquid saturation (Unit: m3/m3) at one point, but not "water_content", which is an extensive quantity associated with volume. 
     - ATS can output water table depth. You may need to add the following in "field evaluators",

     <ParameterList name="surface-water_table_depth" type="ParameterList">
        <Parameter name="field evaluator type" type="string" value="water table depth" />
      </ParameterList>


    and accordingly, add this to Observation:

        <ParameterList name="give_it_a_name" type="ParameterList">
          <Parameter name="variable" type="string" value="surface-water_table_depth" />
          <Parameter name="region" type="string" value="surface domain" />
          <Parameter name="functional" type="string" value="average" />

          <Parameter name="location name" type="string" value="cell" />
           <Parameter name="delimiter" type="string" value=" " />
     <Parameter name="observation output filename" type="string" value="give_it_a_name.dat" />
     <Parameter name="times start period stop" type="Array(double)" value="{0.0,43200.0,-1.0}" />
        </ParameterList>

      - I think verbose cannot help with result output problems. It's used to control how detailed you want to output running info, so you can use it as a debugging tool.

Best,
Bo Gao

--
You received this message because you are subscribed to the Google Groups "Amanzi-ATS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ats-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ats-users/CAN6b_JmebXhzaNzJKgB-94ef_FdDt5oJtPR%3DbjiF-xZnRmsbyQ%40mail.gmail.com.

Coon, Ethan

unread,
Oct 20, 2021, 9:21:14 AM10/20/21
to Bo Gao, Yu Zhang, Amanzi-ATS Users

To add onto what Bo already said –

 

What you had probably should have worked, even if I agree with Bo that you might have wanted saturation_liquid instead of the extensive quantity mols of water.  I’m suspicious of your region – since you used the “point” functional it would have divided by the volume, and I suspect that the volume is 0 (hence the NaN).  With a point, as long as that point is inside the domain, this shouldn’t be an issue, but we have had a problem where the algorithm to figure out which cell contained your point wasn’t working.

 

I thought we had errors in there to catch this problem though, so I’m curious to debug your crashing run too.  Can you run this through the debugger and see why it is crashing?  Set a breakpoint at Observable.cc:295 – is that division (see the source here: https://github.com/amanzi/amanzi/blob/master/src/state/Observable.cc#L295 ) a divide by zero?

 

Ethan

 

-- 

-------------------------------------------------------------------------

Ethan Coon

Research Scientist

Oak Ridge National Laboratory

 

865-241-1296

https://www.ornl.gov/staff-profile/ethan-t-coon

-------------------------------------------------------------------------

 

Coon, Ethan

unread,
Oct 20, 2021, 9:33:17 AM10/20/21
to Bo Gao, Yu Zhang, Amanzi-ATS Users

So it seems like Konstantin fixed the bug I was remembering here: https://github.com/amanzi/amanzi/issues/515

 

So maybe it is something different.  If you can run this through the debugger and let me know what you find out, I’ll try to check more.

Yu Zhang

unread,
Oct 20, 2021, 10:49:03 AM10/20/21
to Coon, Ethan, Bo Gao, Amanzi-ATS Users
Hi Bo and Ethan,

Thank you very much for your response. They are very helpful! I will give them a try later today and let you know who it works. 

Best,
Yu
Reply all
Reply to author
Forward
0 new messages