Question on 09_arctic_hydrology_transport in ats-demos

74 views
Skip to first unread message

Neelarun Mukherjee

unread,
Jul 31, 2025, 4:53:55 PMJul 31
to Amanzi-ATS Users
Hi all,

I am trying to run /ats-demos/09_arctic_hydrology_transport demo, and  I'm running into issues when trying to run this in both ATS v1.5-dev and v1.6. 

I pulled the latest version of the demos from GitHub, but it looks like the input file for this case is updated till v1.5. I tried running the input converter xml1.5-1.6.py and made some manual edits to the input files, but I'm still getting different errors in both versions.

  1. While running with ats v-1.5-dev_37a7b6e8, my input file version is permafrost-transect-transport_v1_5_dev.xml 
I am getting an error (terminal output in attached out.log) : 

~/ats-demos/09_arctic_hydrology_transport/run$ terminate called after throwing an instance of 'DBC::Assertion'
  what():  Assertion: "icy_h_me != nullptr" failed in file: /home/neel/ATS/master/repos/amanzi/src/physics/ats/src/pks/mpc/constitutive_relations/surface_ice_model.cc, at line: 82

  1. And while running with the latest ats v-1.6.0_1741d1ec with permafrost-transect-transport_v1_6.xml
I am getting the error (terminal output in attached out.log_v1_6): 

terminate called after throwing an instance of 'Errors::Message'
  what():  Evaluator "water_flux" @ "surface_subsurface_transport_coupler_next" cannot be created in State. Verify (1) SetEvaluator is called or (2) name exists in state->evaluators. 

I cannot find how to add water_flux in the state->evaluators. Does this refer to the surface–subsurface water flux, and where should this evaluator be added to the state block?
Note that I have changed these two attached input files from the original input file  (permafrost-transect-transport.xml) by looking at other demo files, which are running properly and debugging some errors, and added comments wherever I have done so. 

I would appreciate any suggestions on how to resolve these. 

Thanks,
Neel.
out.log
permafrost-transect-transport_v1_6.xml
permafrost-transect-transport_v1_5_dev.xml
out.log_v1_6

Bo Gao

unread,
Jul 31, 2025, 5:41:02 PMJul 31
to Neelarun Mukherjee, Amanzi-ATS Users
Hi Neel,

For error 1, you can try to change the evaluator type of surface ponded depth to "icy ponded depth".
For error 2, can you check your input file whether you still have "mass_flux"? If so, try to change them to "water_flux".

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 visit https://groups.google.com/d/msgid/ats-users/6e016e3b-8ad3-45ae-9ac8-987d90691b61n%40googlegroups.com.
Message has been deleted

Sam Shaheen

unread,
Jul 31, 2025, 7:11:10 PMJul 31
to Amanzi-ATS Users
Hi Neel,
Error 2 looks like similar ones I've encountered running (reactive) transport with subcycling (described here, Ethan's reply a couple replies down describes what's going on). This was easily fixed by writing in an alias evaluator, for example:
      <ParameterList name="canopy-throughfall_drainage_rain@reactive_transport_next">
        <Parameter name="evaluator type" type="string" value="alias"/>
        <Parameter name="target" type="string" value="canopy-throughfall_drainage_rain@"/>
      </ParameterList>

You would want to update the target name and PK name accordingly.

Best,
Sam

Neelarun Mukherjee

unread,
Aug 1, 2025, 12:43:22 PMAug 1
to Amanzi-ATS Users
Thanks Sam. 
As I understood from your and Ethan's conversation from the other thread, is that transport is solved in smaller time steps than the flow: as a result, the transport equations need to know the fluxes at intermediate times, which we need to alias with a subsysled time tag @next value. 
I added the following lines in the evaluators, which got rid of the errors. 
     <ParameterList name="water_flux@surface_subsurface_transport_coupler_next">
        <Parameter name="evaluator type" type="string" value="alias"/>
        <Parameter name="target" type="string" value="water_flux"/>
      </ParameterList>
      <ParameterList name="pressure@surface_subsurface_transport_coupler_next">
        <Parameter name="evaluator type" type="string" value="alias"/>
        <Parameter name="target" type="string" value="pressure"/>
      </ParameterList>
      <ParameterList name="temperature@surface_subsurface_transport_coupler_next">
        <Parameter name="evaluator type" type="string" value="alias"/>
        <Parameter name="target" type="string" value="temperature"/>
      </ParameterList>
      <ParameterList name="surface-water_flux@surface_subsurface_transport_coupler_next">
        <Parameter name="evaluator type" type="string" value="alias"/>
        <Parameter name="target" type="string" value="surface-water_flux"/>
      </ParameterList>
      <ParameterList name="surface-pressure@surface_subsurface_transport_coupler_next">
        <Parameter name="evaluator type" type="string" value="alias"/>
        <Parameter name="target" type="string" value="surface-pressure"/>
      </ParameterList>
      <ParameterList name="surface-temperature@surface_subsurface_transport_coupler_next">
        <Parameter name="evaluator type" type="string" value="alias"/>
        <Parameter name="target" type="string" value="surface-temperature"/>
      </ParameterList>
However, now I have another error, which is : 

terminate called after throwing an instance of 'Errors::Message'
  what():  factory requested via incorrect type: "N6Amanzi15CompositeVectorE"

I am guessing this is related to the new version from this thread: https://groups.google.com/g/ats-users/c/P0rGshbKEfY 

Thanks for all the help. 
-Neel. 

neel...@gmail.com

unread,
Aug 6, 2025, 10:57:31 PMAug 6
to Amanzi-ATS Users
Hi Bo, 

Many thanks, Error1 is resolved with v1.5_dev. I can continue with this now...

For error-2 with v1.6, I changed all "mass_flux" in my input file to "water_flux". Even after that it is showing the same error. 

terminate called after throwing an instance of 'Errors::Message'
  what():  Evaluator "water_flux" @ "surface_subsurface_transport_coupler_next" cannot be created in State. Verify (1) SetEvaluator is called or (2) name exists in state->evaluators.

Since the error-1 input file works good, I used input converter again to convert this to 1.6, and after common debugs, I again got stuck with the same error as above. I am sharing both of the input files. I think it is searching for "water_flux" in the state-->evaluators but it cannot find any? 

-Neel. 
permafrost_transport_v1_6_converted.xml
permafrost-transect-transport_v1_6.xml

Bo Gao

unread,
Aug 7, 2025, 1:36:43 AMAug 7
to neel...@gmail.com, Amanzi-ATS Users
Hi Neel,

I see Ethan's earlier reply to Sam and I think Sam is correct, you should have the same issue. The alias evaluators you have shown in the screenshot should work. I just rebuilt ats with transport enabled and tested your case with those alias evaluators. It works at my side.

Best,
Bo Gao

Reply all
Reply to author
Forward
0 new messages