ElmerFoamFSI  2.0
ElmerFoamFSI is fluid-solid interaction simulation application built up from OpenFOAM CFD and Elmer CSM coupled through the IMPACT multiphysics software integration infrastructure.
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Macros Groups Pages
Simple Dynamic Problem

Problem Description

The simple dynamic problem tests the accuracy of the ElmerFoamFSI suite. Here we have a viscous fluid ( $ F $) subjected to a velocity profile to generate a simple, in-plane traction to the walls of a channel.
One of these walls is a cantilever beam ( $ S $) ; friction-based traction is applied to the top face of the cantilever to create axial deformation ( $ \delta_z $) .
The boundary conditions are motivated by axial deflection on the beam, therefore, the effect of the vertical deflection created by potential mornal pressure is negligible.
Figure 1 below shows the geometry of the problem.

simpledynamicgeo.png
Figure 1. Domain and boundary conditions for simple dynamic verification problem

The dimensions of the domain are $ L = 1.0 m $, $ h_s = 0.01 m $, and $ h_f = 0.9 m $. The velocity profile is symmetric with $ U_{max} = 1.5 m/s $ and axis of symmetry at $ y = 0.46 m $.
The out-of-plane dimension is selected to be 0.1 m for both domains, arbitrarily. The table below summarizes the properties of the solid and fluid used in the simulation.

dynamictable.png
Table 1. Properties of fluid and solid domains.

The velocity profile is ramped from zeros to its final form with transition period of $ T_{trans} = 0.1s $ and then kept constant for the rest of simulation. The total simulation time is selected to be $ T = 5s $.

ElmerFoamFSI Inputs

In ElmerFoamFSI, OpenFOAM (a finite-volume solver) is used as the fluid solver and Elmer (a finite-element solver) is used as the structural solver.
Here both weak and strong coupling approaches can be used to solve FSI problems. The simple dynamic problem currently utilizes a weak-coupling algorithm.
Please take a look at Setting up Example Problems for further information regarding the structure of each input file.

Elmer Input

Elmer can be used to find deformation of a solid object, ( $ U $), subjected to different types of loads.
To capture large deformations in the solid, ElmerFoamFSI uses the non-linear solver. Here the description of the problem starts with the input files:

The .GRD file provides the description of the geometry of the problem.
The .SIF file provides rest of the definitions, including material properties and boundary conditions.

  • It's important to note that in the SIF file: 1, 2, and 3 correspond to X, Y, and Z directions in a cartesian grid
  • The .SIF file is read by the ELMERSOLVER_STARTINFO upon execution

OpenFOAM Input

Here, OpenFOAM acts as the fluid solver to solve for the fluid pressure ( $ p $) and velocity ( $ U $) found in ./fluid/0/ .
To capture deformations of the solid/fluid interface, OpenFOAM performs mesh update and re-meshing procedures to maintain the quality of the grid.
OpenFOAM requires both definition of the solid and the fluid sections of the grid; in ElmerFoamFSI, the solid definition is replaced by Elmer.
To setup a fluid problem, a strict folder/file hierarchy must be followed, as described below.

There should be at-least three major sub-folders in the main fluid problem (./fluid/ ):
These sub-folders are:

  • ./fluid/0/ contains the initial and boundary conditions for the problem. We specify the initial and boundary conditions for the pressures, velocities and grid deformation in three separate files with proper names
  • ./fluid/system/ contains a series of input files to specify which solvers and strategies should be used
  • ./fluid/constant/ contains the description of the grid and material properities. Here the folder contains info about the problem geometry
    • Within this folder is blockMeshDict (not necessarily named blockMeshDict depending on the example used), which reads the geometric data

Running The Simple Dynamic Problem

The requirements listed in this dynamic example are an extension of the instructions given in main and should be completed before starting the following steps.
In order to execute the simple dynamic verification problem with ElmerFoamFSI and Elmer input, an ElmerFoamFSI input file should be copied to the ./fluid. folder of the OpenFOAM input hierachy. The following directions are the steps to run a problem :

  • Obtain input_data files of SimpleDynamic problem
  • Create a folder and copy Allclean, Allrun (scripts), /fluid/ and /solid/ folders into this folder. Make sure to copy all sub-folders, as well

    Make sure your folder has following files: Allclean, Allrun, AllrunPar, makeLinks, makeSerialLinks, removeSerialLinks (scripts so far), fluid(folder), solid(folder)

  • Copy Elmer SIF, GRD and ELMERSOLVER_STARTINFO files to /fluid/
  • Run ./Allclean and ./Allrun to clean-up and prepare input files for the OpenFOAM
  • Go to ./fluid/ and type ElmerGrid 1 2 name where "name" should be replaced with the name of the GRD file for Elmer
  • Run ElmerFoamFSI, the FSI simulation, by inputting "elmerformfsi name", where "name" should be replaced with the name of ElmerFoamFSI input file

    ./path/to/elmerfoamfsi/elmerfoamfsi test.config (typically found in the top level /build/bin folder)

As a result of simulation, you will obtain VTK,VTU outputs along with many log files. Output files can be further post processed by using tools such as Paraview.