-
Notifications
You must be signed in to change notification settings - Fork 250
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
[FluidDynamicsApplication] Two-fluid Navier-Stokes formulation with fractional splitting approach #12960
Conversation
@uxuech take a look at the Linux compilation erros, a priori easy to fix: In file included from /__w/Kratos/Kratos/applications/FluidDynamicsApplication/fluid_dynamics_application.cpp:28,
from /__w/Kratos/Kratos/build/Custom/applications/FluidDynamicsApplication/CMakeFiles/KratosFluidDynamicsCore.dir/Unity/unity_2_cxx.cxx:47:
/__w/Kratos/Kratos/applications/FluidDynamicsApplication/fluid_dynamics_application.h: In constructor 'Kratos::KratosFluidDynamicsApplication::KratosFluidDynamicsApplication()':
/__w/Kratos/Kratos/applications/FluidDynamicsApplication/fluid_dynamics_application.h:465:96: error: 'Kratos::KratosFluidDynamicsApplication::mVectorialConvectionFractionalElement2D3N' will be initialized after [-Werror=reorder]
const VectorialConvectionFractionalElement<VectorialConvectionFractionalElementData<2, 3>> mVectorialConvectionFractionalElement2D3N;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/__w/Kratos/Kratos/applications/FluidDynamicsApplication/fluid_dynamics_application.h:464:96: error: 'const Kratos::VectorialConvectionFractionalElement<Kratos::VectorialConvectionFractionalElementData<3, 4> > Kratos::KratosFluidDynamicsApplication::mVectorialConvectionFractionalElement3D4N' [-Werror=reorder]
const VectorialConvectionFractionalElement<VectorialConvectionFractionalElementData<3, 4>> mVectorialConvectionFractionalElement3D4N;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /__w/Kratos/Kratos/build/Custom/applications/FluidDynamicsApplication/CMakeFiles/KratosFluidDynamicsCore.dir/Unity/unity_2_cxx.cxx:47:
/__w/Kratos/Kratos/applications/FluidDynamicsApplication/fluid_dynamics_application.cpp:39:1: error: when initialized here [-Werror=reorder]
KratosFluidDynamicsApplication::KratosFluidDynamicsApplication():
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /__w/Kratos/Kratos/applications/FluidDynamicsApplication/fluid_dynamics_application.cpp:28,
from /__w/Kratos/Kratos/build/Custom/applications/FluidDynamicsApplication/CMakeFiles/KratosFluidDynamicsCore.dir/Unity/unity_2_cxx.cxx:47:
/__w/Kratos/Kratos/applications/FluidDynamicsApplication/fluid_dynamics_application.h:464:96: error: 'Kratos::KratosFluidDynamicsApplication::mVectorialConvectionFractionalElement3D4N' will be initialized after [-Werror=reorder]
const VectorialConvectionFractionalElement<VectorialConvectionFractionalElementData<3, 4>> mVectorialConvectionFractionalElement3D4N;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/__w/Kratos/Kratos/applications/FluidDynamicsApplication/fluid_dynamics_application.h:462:84: error: 'const Kratos::TwoFluidNavierStokesFractional<Kratos::TwoFluidNavierStokesFractionalData<2, 3> > Kratos::KratosFluidDynamicsApplication::mTwoFluidNavierStokesFractional2D3N' [-Werror=reorder]
const TwoFluidNavierStokesFractional<TwoFluidNavierStokesFractionalData<2, 3>> mTwoFluidNavierStokesFractional2D3N;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /__w/Kratos/Kratos/build/Custom/applications/FluidDynamicsApplication/CMakeFiles/KratosFluidDynamicsCore.dir/Unity/unity_2_cxx.cxx:47:
/__w/Kratos/Kratos/applications/FluidDynamicsApplication/fluid_dynamics_application.cpp:39:1: error: when initialized here [-Werror=reorder] |
...data_containers/two_fluid_fractional_navier_stokes/two_fluid_navier_stokes_fractional_data.h
Outdated
Show resolved
Hide resolved
...containers/two_fluid_fractional_navier_stokes/vectorial_convection_fractional_element_data.h
Outdated
Show resolved
Hide resolved
...containers/two_fluid_fractional_navier_stokes/vectorial_convection_fractional_element_data.h
Outdated
Show resolved
Hide resolved
applications/FluidDynamicsApplication/custom_elements/two_fluid_navier_stokes_fractional.cpp
Outdated
Show resolved
Hide resolved
applications/FluidDynamicsApplication/custom_elements/two_fluid_navier_stokes_fractional.h
Outdated
Show resolved
Hide resolved
applications/FluidDynamicsApplication/custom_elements/two_fluid_navier_stokes_fractional.h
Outdated
Show resolved
Hide resolved
applications/FluidDynamicsApplication/custom_elements/two_fluid_navier_stokes_fractional.h
Outdated
Show resolved
Hide resolved
...ns/FluidDynamicsApplication/tests/cpp_tests/test_vectorial_convection_fractional_element.cpp
Show resolved
Hide resolved
...ns/FluidDynamicsApplication/tests/cpp_tests/test_vectorial_convection_fractional_element.cpp
Outdated
Show resolved
Hide resolved
for avoiding conflicts
...data_containers/two_fluid_fractional_navier_stokes/two_fluid_navier_stokes_fractional_data.h
Outdated
Show resolved
Hide resolved
...data_containers/two_fluid_fractional_navier_stokes/two_fluid_navier_stokes_fractional_data.h
Outdated
Show resolved
Hide resolved
...data_containers/two_fluid_fractional_navier_stokes/two_fluid_navier_stokes_fractional_data.h
Outdated
Show resolved
Hide resolved
...data_containers/two_fluid_fractional_navier_stokes/two_fluid_navier_stokes_fractional_data.h
Outdated
Show resolved
Hide resolved
...containers/two_fluid_fractional_navier_stokes/vectorial_convection_fractional_element_data.h
Outdated
Show resolved
Hide resolved
...containers/two_fluid_fractional_navier_stokes/vectorial_convection_fractional_element_data.h
Outdated
Show resolved
Hide resolved
applications/FluidDynamicsApplication/custom_elements/two_fluid_navier_stokes_fractional.cpp
Outdated
Show resolved
Hide resolved
applications/FluidDynamicsApplication/custom_elements/two_fluid_navier_stokes_fractional.cpp
Show resolved
Hide resolved
...cations/FluidDynamicsApplication/custom_elements/vectorial_convection_fractional_element.cpp
Outdated
Show resolved
Hide resolved
...cations/FluidDynamicsApplication/custom_elements/vectorial_convection_fractional_element.cpp
Outdated
Show resolved
Hide resolved
...cations/FluidDynamicsApplication/custom_elements/vectorial_convection_fractional_element.cpp
Outdated
Show resolved
Hide resolved
...cations/FluidDynamicsApplication/custom_elements/vectorial_convection_fractional_element.cpp
Outdated
Show resolved
Hide resolved
applications/FluidDynamicsApplication/custom_elements/vectorial_convection_fractional_element.h
Outdated
Show resolved
Hide resolved
applications/FluidDynamicsApplication/custom_elements/vectorial_convection_fractional_element.h
Outdated
Show resolved
Hide resolved
applications/FluidDynamicsApplication/custom_elements/vectorial_convection_fractional_element.h
Outdated
Show resolved
Hide resolved
applications/FluidDynamicsApplication/custom_elements/vectorial_convection_fractional_element.h
Outdated
Show resolved
Hide resolved
applications/FluidDynamicsApplication/custom_elements/vectorial_convection_fractional_element.h
Outdated
Show resolved
Hide resolved
applications/FluidDynamicsApplication/custom_elements/vectorial_convection_fractional_element.h
Outdated
Show resolved
Hide resolved
applications/FluidDynamicsApplication/fluid_dynamics_application.h
Outdated
Show resolved
Hide resolved
applications/FluidDynamicsApplication/fluid_dynamics_application_variables.cpp
Show resolved
Hide resolved
...eneration/two_fluid_navier_stokes_fractional/two_fluid_navier_stokes_fractional_template.cpp
Show resolved
Hide resolved
...tion/two_fluid_navier_stokes_fractional/vectorial_convection_fractional_element_template.cpp
Outdated
Show resolved
Hide resolved
...FluidDynamicsApplication/tests/cpp_tests/test_two_fluid_fractional_navier_stokes_element.cpp
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are minor things to be corrected before merging. Note that most of my suggestions apply to many places. Please take them into account in all of them.
...data_containers/two_fluid_fractional_navier_stokes/two_fluid_navier_stokes_fractional_data.h
Show resolved
Hide resolved
…ing also artificial viscosity to this element
I have reviewed everything, and I think that all suggestions and corrections have been done. Please let me know if there's anything else to modify. Thank you! @rubenzorrilla |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ready to go 🚀
📝 Description
This PR implements a Two-fluid Navier-Stokes formulation using the fractional splitting approach.
The momentum conservation equation has been split into two parts.
The first part solves a pure convection problem for a vector field, in this case, the fractional velocity, where the convection velocity is the vector field itself.
The second part solves the remaining terms of the momentum conservation equation, adding those terms with opposite signs to the ones included in the first part of the problem. This ensures that, in the continuum, the combination of both problems results in the original momentum conservation equation.
Additionally, the approach to mass conservation has been slightly modified. The original two-fluid Navier-Stokes elements include a mass source term that is added to cut elements. Now, the mass source term added to the cut elements differs depending on whether the cut part of the element is water or air.
🆕 Changelog
This translates into the implementation of two new symbolic elements with their corresponding templates and data containers, as well as the unit tests for the elements.