Skip to content

Add 1D cooling Thermo-Mechanical tutorial to documentation - #4123

Open
npillardou wants to merge 1 commit into
developfrom
docs/npillardou/thermoMech1DCoolingTutorial
Open

Add 1D cooling Thermo-Mechanical tutorial to documentation#4123
npillardou wants to merge 1 commit into
developfrom
docs/npillardou/thermoMech1DCoolingTutorial

Conversation

@npillardou

Copy link
Copy Markdown
Contributor

This PR adds a new validation example under advancedExamples/validationStudies/thermoPoromechanics/
that isolates a single mechanism: cooling a rock that is not free to contract generates
tensile stress, and the constitutive model decides whether that stress leads to failure.

The example reuses the 1DCooling input files already in develop and contrasts two runs
that differ only by the solid model:

  • ThermoElastic_1DCooling_fim_smoke.xmlElasticIsotropic: the induced stress grows
    linearly with cooling, without bound.
  • ThermoDruckerPrager_1DCooling_fim_smoke.xmlDruckerPrager: the stress saturates on
    the yield surface and the rock deforms plastically.

Documentation infrastructure

Follows the convention introduced in #3884: the .hdf5 outputs are not versioned.

  • postprocess1DCooling.py — run locally, reads the TimeHistory outputs and writes a single
    20 kB CSV.
  • plot1DCooling.py — run by Sphinx at build time, reads that CSV only. Depends on numpy
    and matplotlib alone, no h5py and no mpmath.

Files

file change
1DCooling/Example.rst new tutorial page
1DCooling/AnalyticalSol.py reference analytical solution
1DCooling/postprocess1DCooling.py new, local post-processing
1DCooling/plot1DCooling.py new, build-time figure
1DCooling/cooling1D.csv new, plotted data (20 kB)
thermoPoromechanics/Index.rst toctree entry
3 × inputFiles/thermoPoromechanics/*1DCooling*.xml SPHINX comment markers only

Notes for reviewers

  • The three input files are touched only to add <!-- SPHINX_... --> comment markers, so
    the tutorial can literalinclude the constitutive and boundary-condition blocks directly
    from the XML rather than duplicating them. No physics, mesh, solver or event is changed.
  • No new integrated test: the three 1DCooling decks are already declared in
    thermoPoromechanics.ats on develop.
  • To regenerate the CSV after a change to the cases, run both decks in their own directories
    and call postprocess1DCooling.py -e <elastic_dir> -d <druckerPrager_dir>.

@npillardou npillardou added type: documentation type: docs ci: run CUDA builds Allows to triggers (costly) CUDA jobs ci: run integrated tests Allows to run the integrated tests in GEOS CI ci: run code coverage enables running of the code coverage CI jobs labels Aug 17, 2026

@frankfeifan frankfeifan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci: run code coverage enables running of the code coverage CI jobs ci: run CUDA builds Allows to triggers (costly) CUDA jobs ci: run integrated tests Allows to run the integrated tests in GEOS CI type: docs type: documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants