Soil thermal conductivity unit and wind speed reference height

53 views
Skip to first unread message

Xiang Huang

unread,
Oct 27, 2023, 2:33:40 PM10/27/23
to Amanzi-ATS Users

Hello everyone, I have two problems to ask for your help. I’m wondering what unit of the soil thermal conductivity when reading results use “ats_xdmf.VisFile()”. I read the results from ats_vis_data.h5 and found the values range 6E-7 to 1.6E-6 using the keyword “thermal_conductivity”. Usually, soil equivalent thermal conductivity is around 2 to 5 W/(m*K). The second one is suffering from an error, as shown below, when adding the wind speed reference height of 20 or 30 m. The model runs smoothly when given it to 10 m. The version I used is v1.5. Thank you very much! Xiang

 

No protocol specified

terminate called after throwing an instance of 'DBC::Assertion'

  what():  Assertion: "resistance_coef <= 1." failed in file: /project/ngee3/xhuang/ats-master/repos/amanzi/src/physics/ats/src/pks/surface_

balance/constitutive_relations/land_cover/seb_physics_funcs.cc, at line: 253

[es15:4137895] *** Process received signal ***

[es15:4137895] Signal: Aborted (6)

[es15:4137895] Signal code:  (-6)

[es15:4137895] [ 0] /usr/lib/x86_64-linux-gnu/libpthread.so.0(+0x14420)[0x7f778d55a420]

[es15:4137895] [ 1] /usr/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7f778d39100b]

[es15:4137895] [ 2] /usr/lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7f778d370859]

[es15:4137895] [ 3] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x9e8d1)[0x7f778d77c8d1]

[es15:4137895] [ 4] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xaa37c)[0x7f778d78837c]

[es15:4137895] [ 5] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xaa3e7)[0x7f778d7883e7]

[es15:4137895] [ 6] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xaa699)[0x7f778d788699]

[es15:4137895] [ 7] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/liberror_handling.so(_ZN3DBC13amanzi_assertEPKcS1_j+0x75)[0x7f778da104d6]

[es15:4137895] [ 8] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/libats_surface_balance.so(_ZN6Amanzi14SurfaceBalance9Relations10LatentHeatEdddddd+0x51)[0x7f778f471d11]

[es15:4137895] [ 9] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/libats_surface_balance.so(_ZN6Amanzi14SurfaceBalance9Relations30UpdateEnergyBalanceWithoutSnowERKNS1_16GroundPropertiesERKNS1_7MetDataERKNS1_11ModelParamsE+0x290)[0x7f778f4722f0]

[es15:4137895] [10] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/libats_surface_balance.so(_ZN6Amanzi14SurfaceBalance9Relations26SEBThreeComponentEvaluator9Evaluate_ERKNS_5StateERKSt6vectorIPNS_15CompositeVectorESaIS8_EE+0x2a5c)[0x7f778f5049dc]

[es15:4137895] [11] ats(_ZN6Amanzi26EvaluatorSecondaryMonotypeINS_15CompositeVectorENS_20CompositeVectorSpaceEE7Update_ERNS_5StateE+0xf3)[0x55aeafe0e583]

[es15:4137895] [12] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/libstate.so(_ZN6Amanzi18EvaluatorSecondary6UpdateERNS_5StateERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x2de)[0x7f778eb1c41e]

[es15:4137895] [13] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/libats_surface_balance.so(_ZN6Amanzi14SurfaceBalance18SurfaceBalanceBase18FunctionalResidualEddN7Teuchos3RCPINS_10TreeVectorEEES5_S5_+0xc0a)[0x7f778f51970a]

[es15:4137895] [14] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/libats_surface_balance.so(_ZN6Amanzi14SurfaceBalance15ImplicitSubgrid18FunctionalResidualEddN7Teuchos3RCPINS_10TreeVectorEEES5_S5_+0x593)[0x7f778f528eb3]

[es15:4137895] [15] ats(+0x52641)[0x55aeafdeb641]

[es15:4137895] [16] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/libtransport.so(_ZN6Amanzi17BDF1_SolverFnBaseINS_10TreeVectorEE8ResidualERKN7Teuchos3RCPIS1_EES7_+0xed)[0x7f778f858cfd]

[es15:4137895] [17] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/libsolvers.so(_ZN6Amanzi13AmanziSolvers16SolverNKA_BT_ATSINS_10TreeVectorENS_15TreeVectorSpaceEE11NKA_BT_ATS_ERKN7Teuchos3RCPIS2_EE+0x11fa)[0x7f778c77ba6a]

[es15:4137895] [18] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/libsolvers.so(_ZN6Amanzi13AmanziSolvers16SolverNKA_BT_ATSINS_10TreeVectorENS_15TreeVectorSpaceEE5SolveERKN7Teuchos3RCPIS2_EE+0xd)[0x7f778c77cf4d]

[es15:4137895] [19] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/libtransport.so(_ZN6Amanzi7BDF1_TIINS_10TreeVectorENS_15TreeVectorSpaceEE8TimeStepEdRKN7Teuchos3RCPIS1_EES8_Rd+0x2fa)[0x7f778f869c5a]

[es15:4137895] [20] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/libats_pks.so(_ZN6Amanzi14PK_BDF_Default11AdvanceStepEddb+0x4c5)[0x7f778f3a2525]

[es15:4137895] [21] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/libats_executable.so(_ZN3ATS11Coordinator7advanceEv+0x1f5)[0x7f778fdeda05]

[es15:4137895] [22] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/libats_executable.so(_ZN3ATS9ATSDriver12cycle_driverEv+0xbb0)[0x7f778fe06c90]

[es15:4137895] [23] /project/ngee3/xhuang/ats-master/amanzi-install-master-Release/lib/libats_executable.so(_ZN3ATS9ATSDriver3runEv+0xd)[0x7f778fe07f4d]

[es15:4137895] [24] ats(+0x3755b)[0x55aeafdd055b]

[es15:4137895] [25] /usr/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f778d372083]

[es15:4137895] [26] ats(+0x3789e)[0x55aeafdd089e]

[es15:4137895] *** End of error message ***

Aborted (core dumped)

 

Coon, Ethan

unread,
Oct 27, 2023, 3:03:50 PM10/27/23
to Huang, Xiang, Amanzi-ATS Users, Gao, Bo

Yes!  Thermal conductivity, along with energy, is an oddball – it is in MW/(m-K) (and MJ respectively).  I believe these are the _only_ two variables that are not in standard SI units.  The reason for this is to allow reasonable scaling for linear solvers acting on the coupled flow + energy system, in a single Jacobian.  We need the partial derivative of the residual function of flow with respect to pressure to be comparable in magnitude to the partial derivative of the residual function of energy with respect to temperature.  Writing the energy conservation equation in MJ instead of J helps ensure this (as an alternative to solving nondimensionalized equations).

 

I have to admit, I haven’t tried using reference height > 10m.  I’m not sure how the wind parameterization works there – maybe Bo can take a look at that with you to see if there is something obvious?

 

Ethan

 

--
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/5094f095-a176-4ab2-ac2c-f50c4f8c1e6cn%40googlegroups.com.

Huang, Xiang

unread,
Oct 27, 2023, 3:17:52 PM10/27/23
to Amanzi-ATS Users, Gao, Bo, Coon, Ethan

Hi Ethan, thanks so much for your prompt replies with detailed explanations! Got it, the unit of thermal conductivity is MW/(m*K) and now it makes sense to me. Yes, ref wind height =10 m works well, but the model crashed after a couple of years run when using 20 or 30 m. Okay, perhaps can wait for the check from Bo and/or other guys. Many thanks, 

Xiang 



From: 'Coon, Ethan' via Amanzi-ATS Users <ats-...@googlegroups.com>
Sent: Friday, October 27, 2023 1:03 PM
To: Huang, Xiang <xhu...@lanl.gov>; Amanzi-ATS Users <ats-...@googlegroups.com>; Gao, Bo <ga...@ornl.gov>
Subject: Re: [EXTERNAL] Soil thermal conductivity unit and wind speed reference height
 

Bo Gao

unread,
Oct 27, 2023, 5:11:46 PM10/27/23
to Huang, Xiang, Amanzi-ATS Users, Gao, Bo, Coon, Ethan
Hi Xiang,

If 10m works but 20m or above does not, it is possible that the calculated air resistance (Ra) is really low especially when the wind speed at 20m or above is quite low. If at the same time soil resistance (Rs) is also very low, it may cause the error. In our simulations, we normally set the reference height to 1-3m, and even if the wind speed sometimes is low, the air resistance is still high enough and won't cause any issue. The default soil resistance is the equation proposed by Sakagucki & Zeng. This model tends to result in low values of soil resistance when soil is unsaturated. So when both Ra and Rs are very small, you might get that error. 

For this issue, some thoughts/notes are:
(1) Ra is formulated originally based on the Monin-Obukhov similarity theory, and takes the most basic form. You can find a lot of references that use the same or similar formulas. In this form, only microscale roughness at the surface is considered, which corresponds to the roughness lengths you set up in your input files. This means above the microscale roughness, the wind speed profile follows log law with height. Normally, this assumption makes sense when there are not a lot of high bumps/vegetations at the surface. If there are a log of high bumps/vegetations, the basic form of Ra will not work but we need to take non-log law regions within a certain distance above land surface. This will help to increase the value of Ra, even if the wind speed at 20m or more is still small, the calculated Ra after this correction will be much larger than the one using the basic form. This may work in your case since you used a very high reference height and normally large roughness should be considered given this height. If you are interested in this problem, you can have a look at my paper WRR2021. I included this correction to ATS, but since I haven't tested it using a lot of data, I would not recommend using it now.
(2) There are two Rs models in ATS now, one is from Sakagucki & Zeng (2009), the other is from Sellers et al. (1992). The latter would produce much higher Rs than the former. But all Rs models are empirical, it is hard to say which is better. I am not sure whether the version you are using now has one or two. So If you would like to try the latter, let me know which ATS version commit you are using, so I can check how to change it in the input file.
(3) Anyway, I would prefer to remove the current "Assertion" error, but to set a limit to the "resistance_coef" to make it no larger than 1. This may take some time since ATS will have a new release later. There are a lot of changes compared to the current master, so I think it might be good to make all changes together. 
(4) Finally, in your case, now I would recommend trying to use a wind speed dataset with low measurement height. 

Best,
Bo Gao

Huang, Xiang

unread,
Oct 27, 2023, 7:43:18 PM10/27/23
to Bo Gao, Amanzi-ATS Users, Gao, Bo, Coon, Ethan

Hello Bo, thanks a lot for your quick replies and the many details about the soil resistance. You must be the top expert in this area!! Okay, I will go to read your wrr2021 paper and the literature you mentioned. I used "ATS version 1.5-dev_a0942c4c" and I think it is the most recent one. I'm not sure if this version has those two Rs models. If yes, perhaps I can go to have a try when you show me how to add the commands to the XML input file. If it is really tricky or time/efforts time-consuming to revise the codes, agree with you using a wind speed dataset with a low measurement height within 10m. In another way, I’m wondering if an equation (empirical formula?) can be used to convert the wind speed measurements at 30m to the values at 10m (or 1~3m)? Such that I can revise wind speed values in the forcing dataset to make the model run to the end. 

All the best,

Xiang



From: Bo Gao <boga...@gmail.com>
Sent: Friday, October 27, 2023 3:11 PM
To: Huang, Xiang <xhu...@lanl.gov>
Cc: Amanzi-ATS Users <ats-...@googlegroups.com>; Gao, Bo <ga...@ornl.gov>; Coon, Ethan <coo...@ornl.gov>
Reply all
Reply to author
Forward
0 new messages