Coupled thermo elasticity #2402
Replies: 4 comments 17 replies
-
Thank you @pcarruscag for your detailed feedback on the pull request. I will surely work on this soon!! |
Beta Was this translation helpful? Give feedback.
-
Hello, I have:
Now moving to Preprocessor: |
Beta Was this translation helpful? Give feedback.
-
Hey, how can I test the code we completed other than regression and unit tests? CI pipeline passed but should I prepare a problem for thermal stress simulation of a simple beam or plate? |
Beta Was this translation helpful? Give feedback.
-
Please reopen the pull request with the new branch |
Beta Was this translation helpful? Give feedback.
-
Continuation of #2398 and #2399 for @Vaish-W to work on.
The idea is to instantiate the heat solver alongside the FEA solver and then access the temperature at the nodes when we compute stresses, stiffness matrix, etc.
The instantiation of solvers happens in CSolverFactory::CreateSolverContainer, so look for places with
solver[FEA_SOL]
and add the creation of a heat solver conditional on some option, we can re-use WEAKLY_COUPLED_HEAT_EQUATION.This should automatically create a SingleGridIntegration class for the heat problem together with the StructuralIntegration for the normal FEA problem.
Now we need to modify the CFEAIteration class to also integrate and advance the heat problem. This is in CFEAIteration::Iterate, before the
/*--- FEA equations ---*/
section we can add a call to the SingleGrid_Iteration of the heat integration class, see CFluidIteration.cpp around line 117 for what you need to do.At this point we should have temperatures being computed by the heat solver and we can start using them in the FEA solver.
We need to do this in all functions that compute stresses Compute_StiffMatrix, Compute_StiffMatrix_NodalStressRes, Compute_NodalStressRes, and Compute_NodalStress.
Where these functions do
element->SetRef_Coord
we need to alsoSetTemperature
(if it is available). These functions do not have access to heat solver at the moment, but CFEASolver::Preprocessing sees the entire solver container, so here we can store a pointer to the heat_solver or it's solution.The last thing to do is to change CElasticityOutput to also output residual information and solution for the heat solver. You can look at CHeatOutput.cpp to see what is available in the heat solver.
Let me know if this makes sense to you and open a draft PR once you have some code so I can comment early on.
We also have weekly developer meetings we can use to talk about the project, the schedule and instructions are in our Slack channel.
Beta Was this translation helpful? Give feedback.
All reactions