Coder Social home page Coder Social logo

ats's Introduction

ATS: The Advanced Terrestrial Simulator

The Advanced Terrestrial Simulator (formerly sometimes known as the Arctic Terrestrial Simulator) is a code for solving ecosystem-based, integrated, distributed hydrology.

Capabilities are largely based on solving various forms of Richards equation coupled to a surface flow equation, along with the needed sources and sinks for ecosystem and climate models. This can (but need not) include thermal processes (especially ice for frozen soils), evapo-transpiration, albedo-driven surface energy balances, snow, biogeochemistry, plant dynamics, deformation, transport, and much more. In addition, we solve problems of reactive transport in both the subsurface and surface, leveraging external geochemical engines through the Alquimia interface.

Join the Community

ATS is more than just a code, but a community of users with a lot of experience in both integrated hydrology, Arctic hydrology, reactive transport, and ATS code development. Please join us on our google group. We try very hard to create a welcoming community that supports and enables our users to do their science.

Installation

ATS is now built as a part of Amanzi directly. Please see the ATS installation instructions on Amanzi's site.

Documentation

Our Documentation covers the input spec, and is motivated by a large suite of Demos.

See also our Wiki and Frequently Asked Questions, or take our online Short Course.

License and Copyright

Please see the LICENSE and COPYRIGHT files included in the top level directory of your ATS download.

Citation

In all works, please cite the code:

E.T. Coon, M. Berndt, A. Jan, D. Svyatsky, A.L. Atchley, E. Kikinzon, D.R. Harp, G. Manzini, E. Shelef, K. Lipnikov, R. Garimella, C. Xu, J.D. Moulton, S. Karra, S.L. Painter, E. Jafarov, and S. Molins. 2020. Advanced Terrestrial Simulator. U.S. Department of Energy, USA. Version 1.0. DOI

Additionally, consider citing one or more of the below, depending upon the application space:

Watershed Hydrology: Coon, Ethan T., et al. "Coupling surface flow and subsurface flow in complex soil structures using mimetic finite differences." Advances in Water Resources 144 (2020): 103701. DOI

Arctic Hydrology: Painter, Scott L., et al. "Integrated surface/subsurface permafrost thermal hydrology: Model formulation and proof‐of‐concept simulations." Water Resources Research 52.8 (2016): 6062-6077. DOI

Reactive Transport: Molins, Sergi, et al. "A Multicomponent Reactive Transport Model for Integrated Surface‐Subsurface Hydrology Problems." Water Resources Research 58.8 (2022): e2022WR032074. DOI

Multiphysics Modeling: Coon, Ethan T., J. David Moulton, and Scott L. Painter. "Managing complexity in simulations of land surface and near-surface processes." Environmental modelling & software 78 (2016): 134-149. DOI

ats's People

Contributors

a-hamm avatar aatchley avatar ajkhattak avatar dasvyat avatar dharp avatar ecoon avatar ekikinzon avatar elchin avatar gaobhub avatar gmanzini-lanl avatar jbeisman avatar jd-moulton avatar julienloiseau avatar levuvietphong avatar lipnikov avatar radhakrishnabl96 avatar raovgarimella avatar saubhagya-gatech avatar smolins avatar xuchongang avatar zexuanxu avatar zgxn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ats's Issues

Installation of ats-1.0 tries to download Silo and hypre TPLs from wrong location

Issue

When installing ats-1.0, executing

. ${AMANZI_SRC_DIR}/build_ATS_generic.sh

throws an error, because it can't download the Silo and hypre archive files. This is because the URLs configuration in config/SuperBuild/TPLVersions.cmake are incorrect.

Fix

Changing

-set(Silo_URL_STRING    "https://wci.llnl.gov/content/assets/docs/simulation/computer-codes/silo/silo-4.10.2")
-set(Silo_ARCHIVE_FILE  silo-4.10.2.tar.gz)

to

+set(Silo_URL_STRING    "https://wci.llnl.gov/sites/wci/files/2021-01")
+set(Silo_ARCHIVE_FILE  silo-4.10.2.tgz)

and

-set(HYPRE_URL_STRING     "https://github.com/LLNL/hypre/archive/")
-set(HYPRE_MD5_SUM        ecde5cc807ec45bfb647e9f28d2eaea1)

to

+set(HYPRE_URL_STRING     "https://github.com/hypre-space/hypre/archive/")
+set(HYPRE_MD5_SUM        270a6e4620622516655dd9903a36d314)

fixes this issue:

[  8%] Performing download step (download, verify and extract) for 'silo'
-- silo download command succeeded.  See also /home/iozgen/workbench/cpp/ats/amanzi_tpls-build-ats-1.0-Release/silo/silo-timestamps/silo-download-*.log
[ 44%] Performing download step (download, verify and extract) for 'hypre'
-- hypre download command succeeded.  See also /home/iozgen/workbench/cpp/ats/amanzi_tpls-build-ats-1.0-Release/hypre/hypre-timestamps/hypre-download-*.log

OUT OF MEMORY issue in reactive transport with ats-master

Another here just to bring up the issue on Github

With the alternative way that Ahmad provided to workaround the initialization issue #54, I had another error msg related to memory.

A few error msg like (I can provide more details when Cori is back):
*** Error in /global/home/groups-sw/pc_ideas/amanzi-ats-master-chemistry-0716/amanzi-install-master-Release/bin/ats': double free or corruption (out): 0x0000000002155d00 *** *** Error in /global/home/groups-sw/pc_ideas/amanzi-ats-master-chemistry-0716/amanzi-install-master-Release/bin/ats': free(): invalid pointer: 0x000000000236ceb8 ***

Not sure if this is related to the issue Ahmad mentioned "transport boundary condition at the end of simulation, related to memory"

Thanks
Zexuan

Issue when restart from checkpoint file (conflict with initial condition in PKs )

It seems when ATS master restarts a simulation from a checkpoint file, it does not overwrite the initial conditions set in the kernals (for example, pressure in the flow PK). In other words, when "initial conditions" is existing in the PKs, the simulation uses it instead of the fields in the checkpoint file. I believe in the previous version (0.87) the initial conditions are omitted and the checkpoint file is used regardless of the initial condition.

I looked into

// Restart from checkpoint, part 2.

and found that the coordinator (seems like a new file - I don't see it in the previous version), it reads from the checkpoint, then call InitializeFields() that may overwrite everything from the checkpoint file?

Not sure if this is related to the PK initializations issue that Ethan and Daniil are working for the integrated hydro reactive transport.

Thanks
Zexuan

issues in coupling for integrated transport

Some tests have made it clear that there are some issues in the implementation of coupling surface and subsurface transport.

Specifically two main issues, each with a test problem.

  1. (the potentially less important one) -- In the case of no flow between the surface and subsurface, molecular diffusion of components across the surface-subsurface interface should still exist. Currently, all coupling between surface and subsurface water is handled via the advective term, so if there is no water flux, there is no component flux.

This is demonstrated in test: https://github.com/amanzi/ats-regression-tests/blob/ecoon/pk_cleanup/06_transport/transport-column_diffusion.xml

In this test, the problem is initialized as hydrostatic with a head of 1m above the surface, and the boundary conditions are all 0 Neumann, and there are no sources. The solution is 0 mass flux on all faces of both the surface and subsurface. The surface is initialized with concentration 1 of a tracer. The subsurface is initialized with a concentration of 0. The molecular diffusion is artificially cranked to a large value. After solving to a sufficiently large time, it is clear that the subsurface concentration is still identically 0 and the surface concentration is still identically 1.

  1. (the more important one) -- In the case of integrated surface and subsurface, flow and transport, we must deal with the case where a surface source of water (e.g. rainfall) comes with a nonzero concentration of component X (e.g. Sulfer dioxide, NOX), but there is no surface water.

The flow coupling in this case is correctly done -- the surface input of water (rainfall rate) is balanced by a mass flux from surface to subsurface that is used as both a sink from the surface equation and a Neumann BC on the subsurface equation. This Neumann-coupling condition correctly reduces to (when solved implicitly) an algebraic equation on the surface (0 = dWC/dt = Q_rain - Q_subsurface_to_suface) and a Neumann BC on the subsurface (q_out = Q_subsurface_to_surface = -Q_rain).

Unfortunately the transport equation is not correct (at least in the donor upwind case). Currently the coupling from surface to subsurface is done through the advective term, where a Dirichlet concentration is multiplied by a face-based mass flux of water (e.g. in the donor upwind case). But the explicit transport equation is hard-coded such that the concentration, which gets used at the Dirichlet condition, is 0 when there is no water on the surface (see https://github.com/amanzi/ats/blob/ecoon/pk_cleanup/src/pks/transport/transport_ats_pk.cc#L1316 ).

So while water comes in, as long as there is no surface water, no component concentration comes in.

This is demonstrated in test: https://github.com/amanzi/ats-regression-tests/blob/ecoon/pk_cleanup/06_transport/transport-column_infiltration.xml

In this test, the problem is initialized with a hydrostatic head below the surface, e.g. no surface water. A source of water is provided to the surface flow equation, and a source of component Tracer1 is provided to the surface transport equation, given by a concentration of 1 times the source of water. (Note, this is another ticket that needs to be fixed, we need a way to specify the concentration of source, not the product.). In this run, one would expect the surface water to stay at 0 until the subsurface fills up, but that the source of Tracer show up in the subsurface immediately.

Note this is more general than just the case of rain. It also affects the case where, for instance, lateral overland flow brings water from upstream onto a surface cell that immediately infiltrates. In this case as well, the ponded depth (and therefore the water content) on the surface is identically zero, but in this case the source delivered to the subsurface should be the product of the uphill concentration and the exchange flux of water. So it is not as simple as just getting the right concentration -- it really needs to be that the sum of all other sources in the surface transport equation is balanced by the surface-subsurface exchange flux of component X. This could be done either by specifying the flux of X (which would then have to be moved into the advective term) or by first calculating the balance, then dividing by the water exchange flux to get an effective concentration of that incoming water, and then using the same Dirichlet approach.

Upwinding total flux is wrong for surface flow

Upwinding works incorrectly, at least total flux option. I didn't check other options yet.
Upwinding is done based on mass_flux direction. The direction is 0 on boundary face.
It results in overland conductivity on boundary face is the half of the cell values.
This is wrong. It may cause several problems but I caught it testing zero gradient BC.

Moreover, the mixture of two approaches lead to confusion. At first, we use "flux"
vector to defined upwind and downwind cells in upwind_total_flux. But then we replace real flux with mass_flux direction. It means one tolerance is replaced by the other. This is very confusing. My suggestion is to use real mass flux for the upwind with small default tolerance.

Additionally, if there is no downwind cells the face value is considered as downwind value. But it is still possible to take an average of downwind and upwind values (in this case cell and face value) which is wrong.

Add option for ats to append instead of overwrite simulation output

I am looking for an option in ATS to append the new results every time when I restart the model from a checkpoint file. The current setting will overwrite the output file by default. The append option would be very useful to keep the output file continuous without cutting the old results.

Segmentation fault/Address not mapped issue for ats-demos (master) 08_integrated_hydro_transport

I was just trying to test if the flow/transport only (no geochemistry) is working so I run the ats-demos (master branch) 08_integrated_hydro_transport. The error msg is below. I slightly tweak the input file for the latest master build. Not sure if this indicates that transport needs to double check...

1 ASCEMIO_Info: Preferred group size is set to nprocs/numIOgroups (1/1)
2 ASCEMIO_Info: Preferred group size is set to 1
3 ASCEMIO_Info: Preferred group size is set to nprocs/numIOgroups (1/1)
4 ASCEMIO_Info: Preferred group size is set to 1
5 [n0082:80828] *** Process received signal ***
6 [n0082:80828] Signal: Segmentation fault (11)
7 [n0082:80828] Signal code: Address not mapped (1)
8 [n0082:80828] Failing at address: 0x6786
9 [n0082:80828] [ 0] /lib64/libpthread.so.0(+0xf630)[0x2b1a06b23630]

Restart issues

Total component concentration is initialized incorrectly after restart.

update Richards PK to use tensor permeability

Richards PK could easily be updated to support tensor permeability. The option for setting the tensor from a vector-valued function is currently supported, but there are some inconsistencies in how things are allocated.

To get this working, we need:

  1. add an option to the PK's input spec specifying whether it is scalar, diagonal tensor, or full tensor. Add this option to the documentation in richards.hh
  2. Fix https://github.com/amanzi/ats/blob/master/src/pks/flow/richards_pk.cc#L133 to Init with the correct dimensionality based on this input.
  3. Add a test to the ats regression testsuite that checks that it works as expected.

Note, I haven't had a chance to work on this yet and likely won't until next year (our internal deadline for EC pre-proposals is Monday). If Chuck or Joe wanted to take a look that would be great, but they aren't currently in the group. They should be! So instead I've assigned @dharp for now...

Clean up energy PKs

Energy uses both an energy_key and a conserved_quantity_key -- they must be the same. Remove the former.

ATS does not build due to changes in Reconstruction

/software/user_tools/current/cades-ccsi/ats/ats/repos/0.88/src/pks/transport/transport_amanzi/Transport_TI.cc: In member function 'virtual void Amanzi::Transport::Transport_PK_ATS::FunctionalTimeDerivative(double, const Epetra_Vector&, Epetra_Vector&)':
/software/user_tools/current/cades-ccsi/ats/ats/repos/0.88/src/pks/transport/transport_amanzi/Transport_TI.cc:37:13: error: 'class Amanzi::Operators::ReconstructionCell' has no member named 'Compute'
   lifting_->Compute();

Fix "blacklist" for NOT writing variables into visualization file

For some reason, the "blacklist" feature does not work for selecting variables that we do NOT want to write into the visualization file.

It worked well previously, but I'm not sure why or when it doesn't work for now.
This is what I had for testing (which works in the past), under ParameterList"state"

I noticed that Danill has addressed this in the past
8a87b70

add support for --version

Would be nice to haveats --version print something like:

ATS: 0.88-HASH
Amanzi: 0.88-HASH

Maybe something with TPLs too.

Incorrect space generated for MFD in mpc_permafrost

Daniil, I can fix this, but I don't understand the NLFV branch of the code starting from here:

std::string pk0_method = pks_list_->sublist(names[0]).sublist("diffusion").get<std::string>("discretization primary");

through line 102.

The bug is that when the discretization is MFD, the CVS needs to get FACE, not BOUNDARY_FACE (e.g. at line 98).

But why is this constructed this way? Should it really be an Operator_FaceCell for NLFV, or should it instead be an Operator_CellBndFace?

add a surface-subsurface import

Several places we have to deal with logic of moving things between surface (cells) and subsurface (faces or boundary_faces).

This should be implemented via an importer. Add an importer to deal with the issue. Probably this goes into Mesh? Alternatively into user code? I think I would prefer mesh, so maybe this is a ticket for upstream?

dkdp missing face unknowns in fv: default overland flow

Reported by Daniil, but I see your issues now. It seems like PDE_DiffusionFV didn't used to need face values for dk_r/dp to do a "true Jacobian", but instead relied on cell-based values for dk_r/dp. Now it uses face unknowns?

Is this a change in Amanzi to use face-based dk/dp? I seem to remember it previously only using cell values of dk/dp, then upwinding internally?

refactor volumetric_deformation to use evaluators

Currently volumetric_deformation is based on two enums:

a "DeformStrategy" which is algorithmic (global optimization vs MSTK's internal vs cell-to-node averaging) and describes how to go from cell volume changes to nodal coordinate changes

a "DeformMode" which describes how to calculate the volume changes.

Clearly the latter should go to evaluators. The former probably can't.

Also, there is an implied dependency on base porosity that isn't required.

Also, keys are hard-coded.

Also, global optimization uses a very old matrix -- does this code-branch even work? This in particular needs regression tests, as it tests MSTK as well which can be fragile.

get reactive transport working in ATS master

Clarify initialization of Chemistry and ATS

@ecoon

  • move chem_engine_->InitState() into setup?
  • move initial conditions state list into chemistry pk and out of state initial conditions list
  • make sure chemistry PK Initialize calls secondaryvariable update for saturation, anything else it needs in the dag
  • make sure flow + reactive transport inits flow before reactive transport

Fix Seg Faults in Alquimia + Amanzi

@ajkhattak

  • seg fault in AmanziChemistry::Alquimia_PK::CopyAlquimiaStateToAmanzi() (some missing setup of

Add Chemistry Regression Tests

@ahmad and @dasvyat

  • stream_decay_ingrowth.xml

figure out 2 vs 3 states and subcycling needs

I'm not sure if there are actually needs for 3 states? @dasvyat what do you do with three states? This needs to be checked more carefully, and regression tests added all around for subcycling in both transport and/or column work.

remove WRM and Thermal conductivities from PKs

These should each be evaluators not hard-coded into the PK but instead taken from State, like everything else. This is particularly important when we start to do non-implicit things that need saturations, i.e. energy equations without flow, or the current example of coupled flow/deformation.

document and rename mass sources for transport

We need to document better the mass sources for transport and use more appropriate names for the Parameter Lists:

  1. There are currently two types of sources: "concentration" and "geochemical"

Examples of "concentration" from transport-column_infiltration.xml test

    <ParameterList name="concentration">
      <ParameterList name="Tc-99 injection">
        <Parameter name="component names" type="Array(string)" value="{Tc-99}" />
        <Parameter name="regions" type="Array(string)" value="{surface}" />
        <Parameter name="spatial distribution method" type="string" value="none" />
        <ParameterList name="source function">
          <ParameterList name="function-tabular">
            <Parameter name="x values" type="Array(double)" value="{0.0,8640000.0}" />
	<Parameter name="y values" type="Array(double)" value="{0.00111,0.0}" />
            <Parameter name="forms" type="Array(string)" value="{constant}" />
          </ParameterList>
        </ParameterList>
      </ParameterList>
      <ParameterList name="surface coupling">
        <Parameter name="regions" type="Array(string)" value="{surface domain}" />
        <Parameter name="spatial distribution method" type="string" value="domain coupling" />
        <Parameter name="submodel" type="string" value="rate" />
        <ParameterList name="fields">
          <Parameter name="flux_key" type="string" value="mass_flux" />
          <Parameter name="copy_flux_key" type="string" value="next_timestep" />
          <Parameter name="field_out_key" type="string" value="total_component_concentration" />
          <Parameter name="copy_field_out_key" type="string" value="default" />
          <Parameter name="field_in_key" type="string" value="surface-total_component_concentration" />
          <Parameter name="copy_field_in_key" type="string" value="default" />
        </ParameterList>
      </ParameterList>
    </ParameterList>

Example of "geochemical":

<ParameterList name="geochemical" type="ParameterList">
      <ParameterList name="Tracer injection" type="ParameterList">
        <Parameter name="regions" type="Array(string)" value="{surface}" />
        <Parameter name="solutes" type="Array(string)" value="{Tracer}" />
        <Parameter name="times" type="Array(double)" value="{0.0,8640000.0}" />
        <Parameter name="geochemical conditions" type="Array(string)" value="{west, west}" />
        <Parameter name="time functions" type="Array(string)" value="{constant}" />
    <Parameter name="ats units [moles/m^3]" type="bool" value="true" />
      </ParameterList>
    </ParameterList>
  1. "Concentration" with spatial distribution=none is basically a fixed mass rate, independent of any water sources. So if one does not add water but adds mass of a component, the concentration will increase. The name "concentration" is clearly a misnomer.

  2. "Concentration" with spatial distribution="domain coupling" is a to couple fluxes between surface and subsurface compartments.

  3. "Geochemical" requires a water source and calculates a mass rate by dividing the concentration values from a geochemical condition (obtained via Alquimia) by the water source rate. If the water source rate is zero, then no mass is added. In other words, the concentration in the surface water can only be as high as what is set in the input source (in the absence of reactions, naturally).

Based on these observations above:

  1. It appears as if the "concentration" mass source should be named "flux" or "rate"
  2. It appears as if there should be a new "concentration" mass source that could include the "geochemical" mass source based on Alquimia, and potentially in the future a new mass source where the concentration value is given natively in Amanzi-ATS, for regular conservative transport

add Hydrostatic initial conditions to Richards

We have the ability to do this through column projection, but it would be much easier (from the user's perspective) to just hard-code in an option. This would actually allow us to do a bit better extrapolation onto faces as well.

area fraction of snow is ugly

Currently, we need the surface energy balance to use the area fraction of snow at the old time. This ensures that we don't lose track of the last bit of snow when the snow depth goes to zero at the new time, i.e. at spring snow melt.

Therefore we use a weird approach -- the seb evaluators need area fraction, but don't include them in their dependencies. Instead the SurfaceBalance::ImplicitSubgrid PK manages the execution of area fractions, only doing so on CommitState() to ensure the S_next_ area fraction keeps the old value until CommitState (when the step is done).

Therefore no other evaluator should "depend" upon area fractions.

This is quite straightforward to fix when new state comes online, as it allows dependencies across time tags.

Add option for ats to report the version number / git info.

There are a number of good reasons to give users an option report the version number and git sha1 hash for a given build. Amanzi has this functionality, and to get started here we'll leverage that CMake magic that fills in a template in a short header file.

clean up overland_pressure

overland_pressure needs to be updated to use Keys similarly to richards. Current key root names are hard-coded.

  • pres-elev
  • overland_conductivity/upwind_overland_conductivity
  • ponded_depth
  • ponded_depth_bar
  • water_content_bar
  • mass_flux
  • mass_flux_direction
  • velocity

Also, there is a bunch of initialization options that seem like they should move to an MPC.

"Bus error" with hetergeneous forcing data hdf5 file on NERSC

Some ats-0.87 (or modif4chemistry) builds have “bus error” issues when a heterogeneous forcing data hdf5 file is read and used on NERSC, maybe some issue with the recent TPLs. This issue was not seen on other computational platforms (watershedfx, Lawrencium). David thinks it could be related to the hugepages module on NERSC.

The builds (on NERSC) work well:
/project/projectdirs/m2398/ideas/ats/install/cori/mpich-7.6.2-gnu-7.1.0/Release-TPLs-0.94.12/amanzi-0.87-180309/bin/ats
/project/projectdirs/m2398/ideas/ats/install/cori/mpich2-7.7.0-gnu-7.3.0/Release-amanzi-0.87-TPLs-0.94.12/modif4chemistry-181201/bin/ats

The builds don't work (with bus error msg):
/project/projectdirs/m2398/ideas/ats/install/cori/mpich2-7.7.6-gnu-8.2.0/Release-amanzi-0.87-TPLs-0.94.12/modif4chemistry-190730/bin/ats
and all later builds.

The latest reproducer (with the error msg copied) can be found on NERSC at: /project/projectdirs/m2398/zexuan/coppercreek/hydrology/p_et3_sm0r_kc_heter
with the hetergeneous met forcing data at:
/project/projectdirs/m2398/zexuan/coppercreek/metforcing

inconsistent supress option names

Fix, and deprecate/error/something on terms in mpc_subsurface:

  • "supress Jacobian terms: div hq / dp,T"

missing initial "d", should be "d div hq / dp,T"

compared to:

  • "supress Jacobian terms: d div q / dT"
  • "supress Jacobian terms: d div K grad T / dp"

improve reliability of ATS development cycle and testing

  • convince David to pay someone to get ATS and ats-regression-tests to run on the AMANZI CI
  • create an Amanzi tag which corresponds to the last known "working" Amanzi master against ATS's current master compiles. Update this tag as ATS gets tested via CI and tests pass.
  • split ats-demos from ats-regression-tests
  • add gold files to ats-regression-tests repo
  • move to pull-request development cycle for ATS
  • ensure that regression tests, demos, and ATS master always work

Factor of molar_density missing in Alquimia wrapper for "mass_source"

There is a bug in the Alquimia wrapper when providing solute source through mass_source and geochemical condition. There is a factor of molar density of water missing. Attached picture contains the details. This factor is there in the boundary condition but not in mass_source.
@ATS_Ticket

"Singular value encountered" error in reactive transport with ats-master

Hi ATS developers,

I'm just trying to bring this on the Github so everyone can keep track of the issue of chemistry merge in ats-master. I encountered the issue below when I was trying to run either my reactive transport case (3D Copper Creek), or the 13_reactive_transport in ats-demos (trans_chem_tests branch)

ERROR: Singular value encountered in ludcmp() on processor: 1 aamax = 0.0000000000000000 row = 1
Jacobian: 1 1 0.0000000000000000 2 0.0000000000000000
Jacobian: 2 1 0.0000000000000000 2 0.0000000000000000

From Ahmad: it's an issue with the order of initialization. Should State go first or PKs? We have been talking about this. Typically ATS initializes PK variables and then State variables. But in reactive transport runs, the primary variables are initialized through State, so State needs to be initialized first otherwise we see this Singular Jacobian issues because things are not properly initialized. And also a few updates in Alquimia_PK.cc break the code.

Thanks
Zexuan

Remove / from thermal conductivity units in input spec

Slashes in input spec parameter names break some xml parsers, at least in python, and need to be escaped. This makes them hard to work with for external tools, even though they are valid in C++/Teuchos::ParameterList.

Currently the only ones I know of are in the thermal conductivity parameters: [W/(m-K)] units, which should get changed to [W m^-1 K^-1]

get WRMs out of richards and richards code cleanup

Like all the other PKs, Richards appears to need some code cleanup.

Most practically, CLM is our first example of a PK that both MUST appear before Richards PK, requires the saturation_liquid evaluator, and therefore requires it before Richards gets around to making it (if it does not appear in state). Move WRM evaluator spec out of Richards PK and into state list.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.