Users:FSI/FluidSolver

From Carat++ Public Wiki
(Difference between revisions)
Jump to: navigation, search
(Created page with 'Category: Users:FSI = Fluid Field Solver OpenFOAM = OpenFOAM is used to simulate the fluid field within an FSI-analysis. Two specific aspects have to be mentioned: compilat…')
 
Line 3: Line 3:
 
= Fluid Field Solver OpenFOAM =
 
= Fluid Field Solver OpenFOAM =
  
OpenFOAM is used to simulate the fluid field within an FSI-analysis. Two specific aspects have to be mentioned: compilation and problem setup. All other aspects are like in standard OpenFOAM.
+
OpenFOAM is used to simulate the fluid field within an FSI-analysis. It is an open-source and freely available software package for FVM-analysis. Two specific aspects have to be mentioned: compilation and problem setup. All other aspects are like in standard OpenFOAM.
  
  
 
== Compilation ==
 
== Compilation ==
  
 +
=== Libraries ===
  
 +
OpenFOAM is only available for a Linux environment. To be used within an FSI-simulation, some changes to the standard installation have to be made. First, a standard installation should be performed. The source code can be downloaded from www.openfoam.org. The version, the institute currently works with, is 1.6.x. For the installation, the guidelines on the user guie, the web site, or the forum, can be used. After the installation is finished and tested, some changes to the source code of the OpenFOAM libraries are necessary. These changes are restricted to the parallel communication library of OpenFOAM and necessary for enabling communication with CoMA. There exists an svn-repository, which contains a README-file with general instructions and the new source code files. The svn-repository is hosted on the same server as the carat repository. The current IP is 129.187.141.99 and the folder is named "OpenFOAM". Follow the instructions in the README-file to replace the code parts and recompile everything.
  
 +
=== Solvers ===
  
Carat++ has to installed under Linux operating system, because FSI-jobs only run under Linux. The difference with a standard installation is, that additional code parts are compiled used for communication between Carat++ and CoMA. This communication is based on MPI.  
+
After a succesfull installation of OpenFOAM, specific FSI-solvers for OpenFOAM have to be installed, following the typical approach. These solvers can also be found in the svn-repository. There are different solvers for different tasks. The solver named "implicitFsiFoamTurb" is e.g. a solver for implicitly coupled FSI-simulations with turbulence modelling (RANS and LES).
  
The changes are made within the file "makefile.in". To activate the additional code parts, the flag -DFSI has to added to the compiler directives:
 
 
<pre>
 
CDIR = ... -DFSI
 
</pre>
 
 
To use the now included MPI commands, the compiler needs to know, where to find the MPI installation. If OpenFOAM is already installed (highly recommended!), the MPI distribution shipped with OpenFOAM should be used. This is done by adding:
 
 
<pre>
 
LIBS = ... -IpathToMPI/include
 
</pre>
 
to the Include-command.
 
 
The installation of the Trilinos solver library is not necessary for running FSI-jobs, if the built-in Carat++ solver is used.
 
  
 
== Problem Setup ==
 
== Problem Setup ==
The problem setup is based on a typical Carat++-Inputfile used for a single-field analysis.
 
  
To be specific for a coupled analysis, two steps have to made:
+
The problem setup is based on a typical OpenFOAM case used for a single-field analysis on a moving domain. Setting this up is explained e.g. in the OpenFOAM user guide or in the tutorials.  
* The coupled interface hast to be defined. This is the geometric representation of the coupled surface between fluid and structure field.
+
* A FSI-analysis is chosen, which links to an basi analysis type, e.g. a static or dynamic analysis.
+
  
 +
Hint: Do not forget to set the velocity boundary condition of the moving patch to type "movingWallVelocity".
  
=== Interface Definition ===
+
One additional file has to be added to the standard case, the file "couplingProperties" in the constant folder. It contains the following parts:
 
+
The interface is the geometric definition of the physical surface between fluid and structure field. It is based on the already exisiting Finite element model. Note the following:
+
 
+
* Not all elements of the model have to be part of the interface. E.g. Shell and Membrane elements should be part of the model, because the surface type gives large influence from surrounding flow, but truss elements are not part, because wind influence on a truss may be neglected.
+
* Not all element types are suitable for usage within the interface. Currently only shell and membrane elements are supported.
+
* An export type has to be defined. Shell and membrane elements are defined by their mid-surface. It depends on the flow and the element thickness, if the mid-surface is a proper definition of the interface. If a very thin membrane element has flow influence only from one side, the mid-surface maybe a proper definition of the interface geometry. If a very thick shell is placed in a surrounding fluid (flow on top and bottom), neglecting the thickness may lead to large errors in the correct physical representation of the problem. Currently, three export types are available: (1) Use the mid-surface of the elements as the interface. (2) Do a blow-up of the mid-surface based on the thickness and a director on the surface to define a 3d representation of the model with a top and bottom surface. (3) Using approach (2) leads to wholes on the side parts of the interface. Close the whole by additional surface elements.
+
 
+
The interface contains different partitions, at least one. Every partition has a unique element type and a unique type of element treatment. A typical interface defintion in Carat++ looks like:
+
  
 
<pre>
 
<pre>
 
EL-IF 1
 
EL-IF 1
  NIP 1 1 0 (1-15) MSHTAG=1 BORDER=;
+
//name of coupling patches
NIP 2 3 0 (20-30)  MSHTAG=1,1,2 BORDER=31,62;
+
coupledPatchNames 2(beam_top beam_bottom );
</pre>
+
coupledPatchTags  2(1 1);
  
This interface consists of two partitions. The first partition (NIP 1) has interface export type 1 (export mid-surface only), format type 0 (dummy), sonsists of elements 1-15, the tag of the surface mesh is 1 (used to match carat and Foam interface meshes) and no border definition is necessary.
+
//density of Fluid
The second partition (NIP 2) has interface export type 3 (export top- and bottom surface and side mesh), format type 0 (dummy), consists of elements 20-30, the tag of the three surface meshes is 1 for the top mesh, 1 for the bottom mesh and 2 for the side mesh (used to match carat and Foam interface meshes). The side mesh is defined by defining nodes, which are part of the border.
+
densityFluid  1000.0;
 
+
Hint: More details on the interface definition can be found in the diploma thesis of Rupert Fisch.
+
 
+
=== Analysis Definition ===
+
 
+
Defining a coupled analysis, contains of two part:
+
 
+
* Defining a Analysis of type FSI as master analysis.
+
* Defining a sub-analysis for the specific structure field behavior (static or dynamic).
+
 
+
The defintion of the master analysis:
+
<pre>
+
PC-ANALYSIS 1: FSI
+
  ANALYSIS = PC-ANALYSIS 2
+
  METHOD  = BLACKBOX  !BLACKBOX, SUBSPACE_LP, SUBSPACE_FD
+
  OUTPUT  = PC-OUT 1
+
  INTERFACE = EL-IF 1
+
 
</pre>
 
</pre>
  
The sub-analysis is given by Analysis 2. The method is given as black-box (standard). Additionally, the output and the interface have to be defined.
+
In this case, the interface mesh of the coupled surface consits of two OpenFOAM patches with names beam_top and beam_bottom. Both have the same mesh tag, used to match Carat++ and Foam interface meshes. The density of the fluid has to be specified the surface forces correctly
 
+
The sub-analysis block is the same as in a standard Carat++-analysis. Possible analysis types are static linear and static nonlinear and dynamic linear and nonlinear (all available time integration algorithms).  
+
 
+
* Hint 1: The specification of an end time in a dynamic analysis is necessary in the input block, but is overriden in the coupled analysis by CoMA.
+
* Hint 2: The loads from the fluid are just added to the loads specified in the carat++-input file. So it is possible to add e.g. self weight to the structure model.
+

Revision as of 15:18, 23 February 2011


Contents

Fluid Field Solver OpenFOAM

OpenFOAM is used to simulate the fluid field within an FSI-analysis. It is an open-source and freely available software package for FVM-analysis. Two specific aspects have to be mentioned: compilation and problem setup. All other aspects are like in standard OpenFOAM.


Compilation

Libraries

OpenFOAM is only available for a Linux environment. To be used within an FSI-simulation, some changes to the standard installation have to be made. First, a standard installation should be performed. The source code can be downloaded from www.openfoam.org. The version, the institute currently works with, is 1.6.x. For the installation, the guidelines on the user guie, the web site, or the forum, can be used. After the installation is finished and tested, some changes to the source code of the OpenFOAM libraries are necessary. These changes are restricted to the parallel communication library of OpenFOAM and necessary for enabling communication with CoMA. There exists an svn-repository, which contains a README-file with general instructions and the new source code files. The svn-repository is hosted on the same server as the carat repository. The current IP is 129.187.141.99 and the folder is named "OpenFOAM". Follow the instructions in the README-file to replace the code parts and recompile everything.

Solvers

After a succesfull installation of OpenFOAM, specific FSI-solvers for OpenFOAM have to be installed, following the typical approach. These solvers can also be found in the svn-repository. There are different solvers for different tasks. The solver named "implicitFsiFoamTurb" is e.g. a solver for implicitly coupled FSI-simulations with turbulence modelling (RANS and LES).


Problem Setup

The problem setup is based on a typical OpenFOAM case used for a single-field analysis on a moving domain. Setting this up is explained e.g. in the OpenFOAM user guide or in the tutorials.

Hint: Do not forget to set the velocity boundary condition of the moving patch to type "movingWallVelocity".

One additional file has to be added to the standard case, the file "couplingProperties" in the constant folder. It contains the following parts:

EL-IF 1
//name of coupling patches
coupledPatchNames  2(beam_top beam_bottom );
coupledPatchTags   2(1 1);

//density of Fluid
densityFluid  1000.0;

In this case, the interface mesh of the coupled surface consits of two OpenFOAM patches with names beam_top and beam_bottom. Both have the same mesh tag, used to match Carat++ and Foam interface meshes. The density of the fluid has to be specified the surface forces correctly





Whos here now:   Members 0   Guests 0   Bots & Crawlers 1
 
Personal tools
Content for Developers