-
Notifications
You must be signed in to change notification settings - Fork 247
2D Cavity flow problem
This is a 2D CFD simulation of the well known lid-driven cavity flow problem. The reference solution has been taken from Marchi et. al. (2009), The following applications of Kratos are used:
- MeshingApplication
- ExternalSolversApplication
- FluidDynamicsApplication
A one meter square-shaped domain is considered. The fluid parameters are set such that the Reynolds number is 100, thus:
- Density (ρ): 1.0 Kg/m3
- Kinematic viscosity (ν): 0.01 m2/s
The boundary conditions are:
- Bottom, left and right boundaries: No-slip
- Top boundary: v = [1.0,0.0] m/s
- Top left corner: v = [0.0,0.0] m/s
- Top right corner: v = [1.0,0.0] m/s
- Bottom left corner: p = 0.0 Pa
The time step has been set to 0.1 seconds. Regarding the total time, 10 seconds has been proved to be enough to reach a stationary solution.
The problem stated above has been solved with a structured mesh with 200x200 divisions composed by linear triangular elements. The obtained velocity field as well as a centred vertical cross section, comparing the reference solution (solved with a 1024x1024 grid) against the obtained one, are shown below.
Marchi, Carlos Henrique, Suero, Roberta, & Araki, Luciano Kiyoshi. (2009). The lid-driven square cavity flow: numerical solution with a 1024 x 1024 grid. Journal of the Brazilian Society of Mechanical Sciences and Engineering, 31(3), 186-198. https://dx.doi.org/10.1590/S1678-58782009000300004
- Getting Kratos (Last compiled Release)
- Compiling Kratos
- Running an example from GiD
- Kratos input files and I/O
- Data management
- Solving strategies
- Manipulating solution values
- Multiphysics
- Video tutorials
- Style Guide
- Authorship of Kratos files
- Configure .gitignore
- How to configure clang-format
- How to use smart pointer in Kratos
- How to define adjoint elements and response functions
- Visibility and Exposure
- Namespaces and Static Classes
Kratos structure
Conventions
Solvers
Debugging, profiling and testing
- Compiling Kratos in debug mode
- Debugging Kratos using GDB
- Cross-debugging Kratos under Windows
- Debugging Kratos C++ under Windows
- Checking memory usage with Valgind
- Profiling Kratos with MAQAO
- Creating unitary tests
- Using ThreadSanitizer to detect OMP data race bugs
- Debugging Memory with ASAN
HOW TOs
- How to create applications
- Python Tutorials
- Kratos For Dummies (I)
- List of classes and variables accessible via python
- How to use Logger
- How to Create a New Application using cmake
- How to write a JSON configuration file
- How to Access DataBase
- How to use quaternions in Kratos
- How to do Mapping between nonmatching meshes
- How to use Clang-Tidy to automatically correct code
- How to use the Constitutive Law class
- How to use Serialization
- How to use GlobalPointerCommunicator
- How to use PointerMapCommunicator
- How to use the Geometry
- How to use processes for BCs
- How to use Parallel Utilities in futureproofing the code
- Porting to Pybind11 (LEGACY CODE)
- Porting to AMatrix
- How to use Cotire
- Applications: Python-modules
- How to run multiple cases using PyCOMPSs
- How to apply a function to a list of variables
- How to use Kratos Native sparse linear algebra
Utilities
Kratos API
Kratos Structural Mechanics API