# ULF Application

The ULF application stands for UPDATED LAGRANGIAN FLUID in the FLUID STRUCTURE INTERACTION problems and allows one to solve the problems involving contact between solid and fluid domains in a monolithic fashion. Two versions exist - one treats the compressible fluid and the other one the quasi-incompressible one. One distinguishes between ULF_FSI and ULF_FSI_INC respectively.

The whole domain is discretized at once, and the solver does not differentiate between fluid and solid. The distinction is performed just by assigning different types of elements for both - either a UpdatedLagrangianFluid element and the TotalLagrangianSolid element. Very roughly, the fluid formulation, that enables monolithic approach differs from the solid one only in the constitutive relation. These details are provided just to give user a rough insight of what is the concept, the current problem type is based on.

## Creating an ULF_FSI (resp. ULF_FSI_INC)example

Let us illustrate the functionality of the ULF FSI on a simple 2D example. Just follow the simple steps described below.

copy the ULF_FSI.gid directotory in the GID/problemtypes/ directory

this ensures that you added the new problem type and it is ready to be used

1. start GID 2. click on the menu DATA->ProblemTypes and choose ULF_FSI (or ULF_FSI_INC) now the problem type with all the necessary specifications is loaded 3. create the necessary geometry (how to create the geometry - read the general GID tutorial) the geometry is created, and now the specific part of ULF_FSI begins

### Problem Data

5)choose DATA->ProblemData

5.1) set the domain size (2 or 3): this example is 2D - so choose 2

5.2) Total time the Total Simulation time. Let us choose 5 seconds for this example.

5.3) Max Delta time - is the maximal time step that will be used in your dynamic simulation. It can be later diminished automatically in case it is necessary (e.g. to avoid the occurence of inverted elements), but otherwise the value you input here will be used. Estimation of the appropriate time step is the task of the analyst. We set the time step to be 0.01 seconds here.

5.4) Output dt means the frequency of output. E.g. I want every 10th step to be printed to file. Ft is chosen to be 0.01, so Output Dt shall be 0.1

5.5) Safety factor is a number between 0 and 1, which is used in the estimation of the time step in order to avoid the presence of the inverted or degradet elements. One shall generally set it to 0.5 - this way the critical time that that would have led to the element invertion is diminished by the factor of 2. (i.e. the time estimated is multiplied by the safety factor and this time is used as a time step for the next solution)

5.6) Alpha shape is the parameter used for the determination of the free surface. If the analyst is not aquainted well with the alpha shape technique, its better to keep the default value of 1.5

5.7) Bounding box is the space of analysis. For example, if we slosh the water and some drops fly out of the container, these drops will be falling down forever, and we do not want to consider in our analysis the motion of a single drop, that is many meters away from the domain of interest. To restrict ourselves just to the area/volume close to the domain of interest, we set the bounding box. Nodes/elements that are outside the box are not considered by the analysis

5.8) Solver type: for the solution of the linear system one can either use direct or the iterative solver. General advise: if the problem is small - you could use the direct solver. Otherwise - iterative. For 3D we recommend to always use the iterative solver.

5.9) Kratos libs path is the directory, where the file Kratos.lib is located

5.10) Directory where applications_interface.py is located

6) Go to Data->Materials and assign the fluid and solid materials to the respective parts of your model. For the fluid, one does not have to assign any properties here, since it is done in the Boundary Conditions sections (which is described later), for the solid nevertheless, the analyst has to set the materials properties here. So, we go on with our example. Lets assign "fluid" to the big square on the right. (assiging to surface) For the little obstacle we choose "solid", set density to 7800 kg/m3, Youngs modulus 210000000 , Poisson's ratio 0,3 and the thickness to 1. (parameter thickness has to be set to 1 for the 2D analysis, in 3D analysis it does not play any role).

### Element Types

7) Here we will define the types of elements that shall be used for fluid and solid domains. We note, that they are different. Go to Conditions->Element Type and choose UpdatedLagrangianFluid2D (UpdatedLagrangianFluid2Dinc in case of quasi-incompressible application) for fluid, assign it to the respective surface, and for solid either use the one proposed in this example: TotalLagrangian2D3N or whichever solid element of your own, formulated in displacements.

### Boundary conditions

8) A term boundary conditions is used here in a very general sense. It involves the real boundary conditions (e.g. zero displacements on the boundaries etc.) as well as the properties of the fluid (what we have done for the solid in the subsection 6), we will do for the fluid here, for some reasons, that are behind the scope of this tutorial). Apply IS_STRUCTURE=1 and DISPLACEMENT_X, _Y = 0 to the lines of the domain that need to be fixed The Boundary Conditions

Now, DENSITY, VISCOSITY, BULK_MODULUS and BODY_FORCE are applied only to fluid subdomain (what was done for solid in subsection 6)