KratosMultiphysics / Kratos

Kratos Multiphysics (A.K.A Kratos) is a framework for building parallel multi-disciplinary simulation software. Modularity, extensibility and HPC are the main objectives. Kratos has BSD license and is written in C++ with extensive Python interface.
https://kratosmultiphysics.github.io/Kratos/
Other
990 stars 243 forks source link

[GeoMechanicsApplication] Add heat transfer calculation to geomechanics application #10372

Open mnabideltares opened 1 year ago

mnabideltares commented 1 year ago

Heat transfer Add calculation for heat transfer for soil. We here start for heat transfer equation for fully saturated soil.

TODO

rubenzorrilla commented 1 year ago

About the thermal element, which is your plan? To do a strongly coupled displacement-energy formulation or to weakly couple the temperature field to the displacement one? If you plan to do the second one, you don't need to implement the thermal element, as it is already in the ConvectionDiffusionApplication. You'll only need to implement your custom coupled solver, indeed, @AlejandroCornejo already did some developments in this regard.

mnabideltares commented 1 year ago

@rubenzorrilla thank you for your suggestion. We would like to add heat transfer in combination with deformation and ground water flow. However, at this step we only add the first part, namely the heat transfer. Our heat equation is not a standard diffusion, but it has extra coefficients accounts for porosity saturation and variable density, heat capacity and heat conductivity. Our final target will be a strong coupling between those as it will be more stable. Can we still use ConvectionDiffusionApplication for our purpose?

rubenzorrilla commented 1 year ago

Hi @mnabideltares.

In that case, I think you'll need to implement your own custom displacement-temperature-pressure element. Besides, the heat elements in the ConvectionDiffusionApplication solve the standard transient convection-diffusion equations. About the variable material properties, this can be done with no problems provided that you save them in the nodal database. Then you can have a custom process implementing the state equation to update the nodal values at the end of the step, that is at the ExecuteFinalizeSolutionStep execution point.

In any case, I think that this is a nice topic to be discussed at the workshop :wink: