Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ConvDiffApp] Adding Substepping thermomechanical solver #12126

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

AlejandroCornejo
Copy link
Member

📝 Description
In this PR I am adding a substepping version of the thermomechanical coupled solver.

A coupled one-way thermo-mechanical solver in which the time step of the two solvers is independent. It is assumed that the dt of the structural part is equal or lower than the thermal one.

Copy link
Member

@rubenzorrilla rubenzorrilla left a comment

Choose a reason for hiding this comment

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

Though this is a long-demanded feature, I think we should discuss it carefully. At first glance I see two important things in here:

  1. Time advance has been so far handled at the AnalysisStage level. Changes in this PR go against this.
  2. Substepping strategy must be the same across applications.

@AlejandroCornejo
Copy link
Member Author

AlejandroCornejo commented Mar 1, 2024

Hi! Let me comment your questions

  1. Time advance has been so far handled at the AnalysisStage level. Changes in this PR go against this. Actually I am not technically advancing time in non of the solvers. I use this pseudo structural time to know how many steps are needed/done but the AdvanceInTime is done as in other solvers.

  2. This is something that we can discuss


super(CoupledThermoMechanicalSubsteppingSolver, self).__init__(model, custom_settings)

self.var_utils = KratosMultiphysics.VariableUtils()
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
self.var_utils = KratosMultiphysics.VariableUtils()

this should be instantiated in place

@@ -46,6 +46,8 @@ def CreateSolverByParameters(model, solver_settings, parallelism):
# Coupled mechanical-thermal solver
elif (solver_type == "thermo_mechanically_coupled" or solver_type == "ThermoMechanicallyCoupled"):
solver_module_name = "coupled_structural_thermal_solver"
elif (solver_type == "thermo_mechanically_coupled_substepping" or solver_type == "ThermoMechanicallyCoupledSubstepping"):
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
elif (solver_type == "thermo_mechanically_coupled_substepping" or solver_type == "ThermoMechanicallyCoupledSubstepping"):
elif solver_type == "thermo_mechanically_coupled_substepping":

new solvers should only use the json style


solid_is_converged = self.structural_solver.SolveSolutionStep()

self.RemoveConvectiveVelocity()
Copy link
Member

Choose a reason for hiding this comment

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

the database does not go back to the original status for the past steps, is that correct?

@AlejandroCornejo
Copy link
Member Author

state of this?

@rubenzorrilla
Copy link
Member

state of this?

❄️

@loumalouomega
Copy link
Member

state of this?

❄️

Ironic, because is thermomechanic...

@AlejandroCornejo
Copy link
Member Author

Is this in the TO-DO list of the @KratosMultiphysics/technical-committee ?

@rubenzorrilla
Copy link
Member

Is this in the TO-DO list of the @KratosMultiphysics/technical-committee ?

It is since long ago.

@RiccardoRossi
Copy link
Member

@rubenzorrilla and @RiccardoRossi will do some brainstorming about this and come back with a concrete proposal

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 👀 Next meeting TODO
Development

Successfully merging this pull request may close these issues.

5 participants