ACU-T: 5403 Piezoelectric Flow Energy Harvester: A Fluid-Structure Interaction

This tutorial provides the instructions for setting up, solving and viewing results for a simulation of a piezoelectric fluid harvester. In this simulation, a piezoelectric flow harvester is placed in a fluid flow channel. The harvester is attached to a cylinder mount which also acts as a bluff body causing vortices in the fluid flow. The interaction between the pressure fields generated by the vortices and the flow harvester structure is simulated in this tutorial. AcuSolve is used in conjunction with a structural solver to compute the structural displacement of the harvester using a direct-coupled fluid structure interaction (DC-FSI) approach. Arbitrary Lagrangian Eulerian (ALE) approach is used to compute the mesh deformation in the fluid domain as it interacts with the deforming structure.

The basic steps in any CFD simulation are shown in ACU-T: 2000 Turbulent Flow in a Mixing Elbow. The PFSI approach for a fluid-structure multiphysics problem has been discussed in the Piezoelectric Flow Energy Harvester PFSI tutorial. The following additional capabilities of AcuSolve are introduced in this tutorial:
  • Set up a Direct Coupled FSI simulation (DC-FSI)
  • AcuSolve/OptiStruct multiphysics coupling
  • Setting up external code parameters to support coupling
  • Assigning external code parameters to surfaces
In this tutorial you will do the following:
  • Analyze the problem
  • Start AcuConsole and create a simulation database
  • Set general problem parameters
  • Set solution strategy parameters
  • Import the geometry for the simulation.
  • Create a volume group and apply volume parameters
  • Create surface groups and apply surface parameters
  • Set the appropriate boundary conditions for the coupling surfaces
  • Set global and local meshing parameters
  • Generate the mesh
  • Run AcuSolve
  • Monitor the solution with AcuProbe
  • Post-process the nodal output with AcuFieldView


You should have already run through the introductory tutorial, ACU-T: 2000 Turbulent Flow in a Mixing Elbow. Though not required, it is recommended that you have also run through ACU-T: 5400 Piezoelectric Flow Energy Harvester: A Fluid-Structure Interaction (P-FSI). This tutorial will demonstrate the same problem setup used in the P-FSI tutorial but with a DC-FSI approach. It is assumed that you have some familiarity with AcuConsole, AcuSolve and AcuFieldView. You will also need access to a licensed version of AcuSolve.

The coupled structural solver used for this tutorial is another HyperWorks product, OptiStruct. Thus, to follow this tutorial you will also need access to a licensed version of OptiStruct. The corresponding OptiStruct setup for this tutorial is available in the OptiStruct tutorial manual.

Prior to running through this tutorial, copy from <Altair_installation_directory>\hwcfdsolvers\acusolve\win64\model_files\tutorials\AcuSolve to a local directory. Extract fluid.x_t and slab_dcfsi.fem from The file fluid.x_t stores the geometry information for the fluid portion of the model for this problem, and the file slab_dcfsi.fem is the OptiStruct input deck for this problem.

The color of objects shown in the modeling window in this tutorial and those displayed on your screen may differ. The default color scheme in AcuConsole is "random," in which colors are randomly assigned to groups as they are created. In addition, this tutorial was developed on Windows. If you are running this tutorial on a different operating system, you may notice a slight difference between the images displayed on your screen and the images shown in the tutorial.

Analyze the Problem

An important step in any CFD simulation is to examine the engineering problem at hand and determine the important parameters that need to be provided to AcuSolve. Parameters can be based on geometrical elements (such as inlets, outlets, or walls) and on flow conditions (such as fluid properties, velocity).

The schematics of the problem is shown in Figure 1. The CFD model consists of a cylindrical body and a cantilever beam. This cylindrical body generates vortex shedding. This vortex shedding creates a zone of alternating asymmetric pressure distribution on either side of the beam. Such an alternating pressure distribution exerts an oscillating force on the beam, creating a sustainable oscillating vibration in the beam.

The fluid solver does not require the solid body to be modeled. However, the structural solver will solve for the structural deformation using the fluid flow and pressure field which will be acting on the surface of the structure. The information required by the structural solver for structure displacement calculation will be passed on to it by the fluid solver. The structural solver on the other hand, will pass on the displacement information to the fluid solver. The fluid solver will then use this displacement information to calculate the flow field at the next time step, which will then be used by the structural solver to update the displacement information. This back and forth exchange of information between the fluid and structural solver will take place at each time step, and continue until one of the solvers signals the end of simulation. Figure 2 shows the arrangement of the beam with its various layers.

Figure 1. Schematic of the Problem

Figure 2. The Beam with its Various Layers

Fluid Structure Interaction

Fluid Structure Interaction is the interaction between a fluid flow and a deformable solid structure in contact with this flow. An FSI problem can be an external or an internal flow problem. The fluid flow can be external with the solid body immersed in the flow, for example, a windmill blade in open atmosphere. The fluid flow can also be internal with the solid body enclosing the flow, for example, fluid flow inside a deformable pipe. In both cases, the principle behind solving the problem remains the same. When a fluid flow encounters a structure, fluid pressure exerts a stress on the solid body that can lead to deformations in the structure. The magnitude of the deformation depends on the stiffness of the structure material and the magnitude of pressure force exerted by the fluid. The deformation in the structure shape then leads to altering of the flow characteristics in vicinity of the structure.

An FSI problem is thus a multiphysics problem, with the coupled laws of structural and fluid mechanics affecting the solution. There are two widely used approaches with which this coupling is achieved:
  1. Practical-FSI (P-FSI): The structure is reduced in the modal space and coupled to the fluid domain through interface nodes. The coupling between the solvers happens in a single pass itself. Structural behaviour is limited to be linear in a P-FSI simulation.
  2. Direct coupling (DC-FSI): The coupling is a co-simulation between the structural and the fluid solver, with each solver stepping through time simultaneously and iterating to equilibrium in each time step.

In case the deformations in the structure are large enough to alter the fluid flow significantly, the DC-FSI co-simulation approach should be used. With this approach, as the fluid flow and pressure fields affect the structural deformations, and the structural deformations affect the flow and pressure, the information about these effects is exchanged between the solvers in real time.

Given the difference in coupling methodology, it is likely that slightly different results will be observed when a same problem is solved using P-FSI and DC-FSI approaches. The choice of the approach that should be used shall depend on the problem and the available resources. As mentioned above, the P-FSI approach should be limited to the cases when displacements in the structure are small, and the structural behaviour can be approximated to be linear. For all other cases, DC-FSI should be preferred. However, DC-FSI simulations incur a higher computational resources cost. With this consideration, P-FSI simulation can also be used as a preliminary test simulation before a DC-FSI simulation is carried out.

FSI can be stable or oscillatory. In a stable FSI, the deformed shape of the structure will not change with time, unless the flow changes as well. In an oscillatory FSI, once the structure is deformed, it will try to return to its non-deformed state and then the whole deformation process repeats itself.

Mesh Motion Approaches in AcuSolve

Many simulations require deformation of the domain with time. AcuSolve provides two approaches for handling dynamic meshes:
  1. Arbitrary Lagrangian Eulerian (ALE)
  2. Interpolated Mesh Motion.

Arbitrary Lagrangian Eulerian (ALE)

ALE is an approach for mesh motion in which the computational nodes are moved arbitrarily with the aim of optimizing the element quality. An additional Partial Differential Equation (PDE) is solved to arrive at the appropriate mesh position. ALE is capable of handling complex arbitrary motions and is therefore the most general approach in simulating moving mesh problems. Generality comes with additional computational cost because of the extra PDE to be solved. For simpler motions like 1D or 2D motions faster approaches are available which include interpolated mesh motion, general specified motions, nodal boundary conditions based approaches.

Define the Simulation Parameters

Start AcuConsole and Create the Simulation Database

In this tutorial, you will begin by creating a database, populating the geometry-independent settings, loading the geometry, creating volume and surface groups, setting group parameters, adding geometry components to groups, and assigning mesh controls and boundary conditions to the groups. Next you will generate a mesh and run AcuSolve to solve for the number of time steps specified. Finally, you will visualize some characteristics of the results using AcuFieldView.

In the next steps you will start AcuConsole, and create the database for storage of the simulation settings.

  1. Start AcuConsole from the Windows Start menu by clicking Start > Altair <version> > AcuConsole.
  2. Click the File menu, then click New to open the New data base dialog.
    Note: You can also open the New data base dialog by clicking on the toolbar.
  3. Browse to the location that you would like to use as your working directory.
    This directory is where all files related to the simulation will be stored. The AcuConsole database file (.acs) is stored in this directory. Once the mesh and solution are created, additional files and directories will be created within this directory.
  4. Create a new directory in this location. Name it DCFSI_Tutorial and navigate into this directory.
  5. Enter piezo_harvester_dcfsi as the file name for the database.
    Note: In order for other applications to be able to read the files written by AcuConsole, the database path and name should not include spaces.
  6. Click Save to create the database.

Set General Simulation Parameters

In next steps you will set parameters that apply globally to the simulation. To make this simple, the basic settings applicable for any simulation can be filtered using the BAS filter in the Data Tree Manager. This filter enables display of only a small subset of the available items in the Data Tree and makes navigation of the entries easier.

  1. Click BAS in the Data Tree Manager to switch to basic view in the Data Tree.

    Figure 3.
  2. Double-click the Global Data Tree item to expand it.
    Tip: You can also expand a tree item by clicking next to the item name.

    Figure 4.
  3. Double-click Problem Description to open the Problem Description detail panel.
    Tip: You can also open a panel by right-clicking a tree item and clicking Open on the context menu.
  4. Enter AcuSolve DCFSI Tutorial as the Title.
  5. Enter Piezoelectric harvester as the Sub title.
  6. Change the Analysis type to Transient.
    1. Click the Analysis type drop-down menu.
    2. Click Transient from the list.
  7. Change the Turbulence equation to Spalart Allmaras.
  8. Change the Mesh type from Fixed to Arbitrary Mesh Movement (ALE).
  9. Set External code to On.
    This option tells AcuSolve that it will be communicating with an external code at run time.

Set Solution Strategy Parameters

  1. Click BAS in the Data Tree Manager to switch to basic view in the Data Tree.
  2. Double-click Auto Solution Strategy to open the Auto Solution Strategy detail panel.
  3. Check that the Analysis type is set to Transient.
  4. Set the Max time steps as 0.0.
  5. Set the Final time as 3.0.
  6. Set the Initial time increment as 0.01.
  7. Set the Min stagger iterations as 3.
  8. Set the Max stagger iterations as 20.
  9. Set the Relaxation factor to 0.
    When solving transient solutions, the relaxation factor should be set to zero. A non-zero relaxation factor causes incremental updates of the solution, which will impact the time accuracy of the solution for transient cases.
  10. Check that the Flow, Turbulence, Mesh, and External code radio buttons are set to On.

    Figure 5.

Set Material Model Parameters

AcuConsole has three pre-defined materials, Air, Aluminum, and Water, with standard parameters defined. In the next steps you will check the material characteristics of the predefined "Water" model to match the desired properties for this problem.
  1. Double-click Material Model in the Data Tree to expand it.
  2. Double-click Water in the Data Tree to open the Water detail panel.
    The Material type for water is Fluid. Fluid is the default material type for any new material created in AcuConsole.
  3. Click the Density tab. Check that:
    1. The Type is set to Constant.
    2. Density value is set to 1000 kg/m3.
  4. Click the Viscosity tab. The viscosity of water is 0.001 kg/m – sec.
  5. Save the database to create a backup of your settings. This can be achieved with any of the following methods.
    • Click the File menu, then click Save.
    • Click on the toolbar.
    • Click Ctrl+S.
    Note: Changes made in AcuConsole are saved into the database file (.acs) as they are made. A save operation copies the database to a backup file, which can be used to reload the database from that saved state in the event that you do not want to commit future changes.

Import the Geometry and Define the Model

Import Geometry

You will import the geometry in the next part of this tutorial. You will need to know the location of fluid.x_t in order to complete these steps. This file contains information about the geometry in Parasolid ASCII format.
  1. Click File > Import.
  2. Browse to the directory containing fluid.x_t.
  3. Change the file name filter to Parasolid File (*.x_t *.xmt *X_T …).
  4. Select fluid.x_t and click Open to open the Import Geometry dialog.

    Figure 6.

    For this tutorial, the default values for the Import Geometry dialog are used to load the geometry. If you have previously used AcuConsole, be sure that any settings that you might have altered are manually changed to match the default values shown in the figure. With the default settings, volumes from the CAD model are added to a default volume group. Surfaces from the CAD model are added to a default surface group. You will work with groups later in this tutorial to create new groups, set flow parameters, add geometric components, and set meshing parameters.

  5. Click Ok to complete the geometry import.

Apply Volume Attributes

Volume groups are containers used for storing information about a volume region. This information includes solution and meshing parameters applied to the volume and the geometric regions that these settings are applied to.

When the geometry was imported into AcuConsole, all volumes were placed into the "default" volume container.

Since the model for this tutorial has only a single volume, it will be the only volume in the default volume group when the geometry is imported. Even when there is a single volume in the model, it is advisable to rename the volume for ease of identification in future. In the next steps you will rename the default volume group container, and set the material and other properties for it.

  1. Expand the Model Data Tree item.
  2. Turn off the display of Surfaces by right-clicking on Surfaces and selecting Display off.
  3. Expand Volumes. Toggle the display of the default volume container by clicking and next to the volume name.
    Note: You may not see any change when toggling the display if Surfaces are being displayed, as surfaces and volumes may overlap.
  4. Rename the default volume group to fluid.
    Note: When an item in the Data Tree is renamed, the change is not saved until you press the Enter key on your keyboard. If you move the input focus away from the item without entering it, your changes will be lost.
  5. Set up the fluid volume set:
    1. Expand the fluid volume group in the tree.
    2. Double-click Element Set under fluid to open it in the detail panel.
    3. Check that the Medium for the volume is set to Fluid. If not, click on the drop-down menu and select Fluid.
    4. Click the Material model drop-down menu and select Water.

      Figure 7.

Create Surface Groups and Apply Basic Surface Parameters

Surface groups are containers used for storing information about a surface, including solution and meshing parameters, and the corresponding surface in the geometry that the parameters will apply to.

In the next steps you will define surface groups, assign the appropriate settings for the different characteristics of the problem and add surfaces to the group containers.

  1. Turn-off the display for Volumes by right-clicking on Volumes and clicking Display off.
  2. Right-click Surfaces and select Surface Manager.
  3. In the Surface Manager dialog, click New 6 times to create 6 new surface groups.

    If you cannot see the Simple BC Active and Simple BC Type columns, click Columns, select these two columns from the list and click Ok.

  4. Turn off the display off for all surfaces except for default surface.
  5. Using the figure below as a guide, rename the Surface Names (column 1) for all surfaces, and set the Simple BC Active and Simple BC Type columns.

    Make sure the Simple BC option is set to off for the beam surface.

  6. Assign the surfaces to the z_pos and z_neg surface groups.
    1. Click Add to in the to z_pos row.
    2. Select the planar surface with the maximum z-coordinate as shown in figure below and click Done.

  7. Similarly, assign the surface with the minimum z-coordinate to the z_neg surface group.
  8. Assign the surfaces enclosing the domain at the top and bottom to the slip surface group.
  9. Assign the surface with the minimum x-coordinate to inlet surface group.
  10. Assign the surface with the maximum x-coordinate to outlet surface group.
  11. Assign the cylinder surface to the cylinder surface group.
    Use the following figure as the reference for selecting the required surfaces.

  12. Close the Surface Manager.
When the geometry was loaded into AcuConsole, all geometry surfaces were placed in the default surface group container. This default surface group was renamed to beam in the Surface Manager. In the previous steps, you assigned some surfaces to various other surface groups that you created. At this point, all that is left in the beam surface group are the surfaces which make up the contact boundary between the fluid volume and the beam.

Set Surface Boundary Conditions

Set Parameters for the Inlet

  1. Click BAS in the Data Tree Manager to switch to basic view in the Data Tree.
  2. Expand the Model Data Tree item.
  3. Under Model, expand Surfaces, and then expand the inlet surface group.
  4. Double-click Simple Boundary Condition to open the detail panel.
  5. Ensure the Type is to Inflow.
  6. Check that the Inflow type is set to Velocity, and that the Inflow Velocity type is Cartesian.
  7. Set the X velocity to 10 m/s.
  8. Set the Turbulence input type to Direct.
  9. Set the Eddy viscosity ratio to 1e-05 m2/sec.

    Figure 8.

Set Parameters for the z_neg and z_pos Surfaces

  1. Expand the z_neg surface group.
  2. Double-click Simple Boundary Condition to open the detail panel.
  3. Ensure the Type is to Slip.
  4. Set the Mesh displacement BC type to Slip.
    This setting allows the mesh to slip tangentially along the surface. Using this option requires the surface to be planar.
  5. Repeat the above steps for the z_pos surface group.
    You may also choose to Propagate the settings for z_neg surface group to z_pos surface group, to ensure they are the same.

Set Parameters for the Slip Surface

  1. Expand the slip surface group.
  2. Double-click Simple Boundary Condition to open the detail panel.
  3. Ensure the Type is to Slip.

    Figure 9.

Set Parameters for the Outlet Surface

  1. Expand the outlet surface group.
  2. Double-click Simple Boundary Condition to open the detail panel.
  3. Ensure the Type is set to Outflow.

    Figure 10.

Set Parameters for the Cylinder Surface

  1. Expand the Cylinder surface group.
  2. Double-click Simple Boundary Condition to open the detail panel.
  3. Ensure the Type is set to Wall.

    Figure 11.

Set Parameters for the Beam Surface

  1. Click FSI in the Data Tree Manager to display the options relevant to setting up an FSI model in the Data Tree.
  2. Under beam, activate External Code Surface.
  3. In the detail panel, check that the Coupling type is set to Structural and that the Coupling direction is set to Both.
  4. Ensure the Velocity type is set to Wall, and the Mesh displacement type is Tied.

Define Nodal Outputs

The nodal output command specifies the nodal output parameters, for instance, output frequency, number of saved states, etc.

  1. Click BAS in the Data Tree Manager to switch to basic view in the Data Tree.
  2. Expand Global then expand Output.
  3. Double-click Nodal Output to open the Nodal Output detail panel.
  4. Set Time step frequency as 2.
    This will save the nodal outputs at every 2nd time step.
  5. Set Output initial condition to On.
    This will instruct the solver to write the initial state of the problem as the first output file.
  6. Check that the Number of saved states is set to zero.

    Figure 12.
    Setting this option to zero will instruct the solver to save all the solution state files.

Create Time History Output Points

Time History Output commands enables you to extract the nodal solution at any point within the domain. In this simulation, it would be interesting to observe the displacement at the tip of the cantilever beam.

  1. Under Output, right-click on Time History Output and select New.

    A new entry, Time History Output 1, will be created in the Data Tree under the Time History Output branch.

  2. Rename Time History Output 1 to Tip_MonitorPoint.
  3. Double-click Tip_MonitorPoint to open the detail panel. In the detail panel, complete the following:
    1. Change the Type to Coordinates.
    2. Click Open Array and fill in the row in the Array Editor dialog as follows:

      Figure 13.
    3. Click OK.
    4. Set Time step frequency to 1.
      This will save the results for the defined time history point at every time step.
  4. Save the database.

Set the Initial Conditions

  1. In the Data Tree, double-click Nodal Initial Condition to open the detail panel.
  2. Set the X velocity to 10 m/s.
  3. Set the Eddy viscosity to 1e-05 m2/sec.

    Figure 14.

Create a Force Ramp Multiplier Function

The force acting on the beam, due to the flow, will be ramped gradually over the first few time steps. After these first few time steps, the complete force from the fluid will be transferred to the beam without any ramping. This will be achieved using a Multiplier Function. In the next few steps you will create a linear multiplier function which will later be assigned as a force multiplier function for load acting on the beam.

  1. Click PB* in the Data Tree Manager to display all the available settings related to general problem setup in the Data Tree.
  2. Right-click on Multiplier Function and select New.
    A new entry, Multiplier Function 1, is created in the Data Tree under the Multiplier Function branch.
  3. Rename Multiplier Function 1 to ForceRamp.
  4. Double-click on ForceRamp to open the detail panel.
  5. In the detail panel, change the Type to Piecewise Linear.
  6. Change the Curve fit variable to Time step.
  7. Click Open Array.
  8. Click Add to create a second row in the Array Editor.
  9. Enter the values as follows:

    Figure 15.
  10. Click OK.

Set up the External Code Coupling

In the introduction it was discussed that the structural solver is responsible for calculating the displacement, and passes on the calculated displacements to AcuSolve. In the following steps, you will set up the connection between AcuSolve and the external code, which in this case is OptiStruct.

  1. Click FSI in the Data Tree Manager to display the options relevant to setting up an FSI model in the Data Tree.
  2. Double-click the Global Data Tree item to expand it.
  3. Double-click External Code Parameters to open the External Code Parameters detail panel.
  4. Check that Communication is set to Socket.
  5. Turn the Socket initiate flag to Off.
  6. Enter the name of the machine running the structural solver in the Socket host box.
    Note: If you are running AcuSolve and the structural solver (OptiStruct) on the same machine, enter localhost here.
  7. Set the Socket port to 48002.
    Socket port will depend on the structural solver. 48002 is the OptiStruct default and is thus used for this example. Refer to the manual of the structural solver you are using to determine the correct port number to be entered here.
  8. Click the Multiplier function drop-down menu and select ForceRamp.
    This will gradually ramp up the forces transmitted from the external code over the first few steps as specified by the multiplier function (20 time steps in this case).

Assign Mesh Controls

Set Global Mesh Parameters

Global mesh attributes are the meshing parameters applied to the model as a whole without reference to a specific geometric volume, surface, edge, or point. Local mesh attributes are used to create mesh generation controls for specific geometry components of the model.

In the next steps you will set the global mesh attributes.

  1. Click MSH in the Data Tree Manager to filter the settings in the Data Tree to show only the controls related to meshing.
  2. Double-click the Global Data Tree item to expand it.
  3. Double-click Global Mesh Attributes to open the Global Mesh Attributes detail panel.
  4. Change the Mesh size type to Absolute.
  5. Set the Absolute mesh size to 2.0 m.
  6. Set the Mesh growth rate to 1.4.

    Figure 16.

Set Surface Mesh Parameters

Surface mesh attributes are applied to a specific surface in the model. It is a type of local meshing parameter used to create targeted mesh controls for one or more specific surfaces.

Setting local mesh attributes, such as surface mesh attributes, is not mandatory. When a local mesh attribute is not found for a component, the global attributes are used as the mesh generation control for that component. If a local mesh attribute is present, it will take precedence over the global setting.

In the next steps you will set the surface meshing attributes.

  1. Expand the Model Data Tree item.
  2. Under Model, expand Surfaces.
  3. Under Surfaces, expand the cylinder surface group.
  4. Click the Surface Mesh Attributes check box to activate and open the detail panel.
    The detail panel becomes populated with more options.
  5. Ensure that the Mesh size type is set to Absolute.
  6. For Absolute mesh size, enter 0.05 m.
  7. Switch the Region of influence parameters flag to On.
    Mesh controls related to influence region from the surface will be visible now.

Region of influence is a size control that allows you to control the size and growth rate of the surface and volume mesh surrounding a surface based on the distance from the surface.

  1. Set the Influence parameters:
    1. Set Influence type to Simple.
    2. Set Influence size factor to 3.0.
    3. Set the Influence distance to 2.0.
    Note: The above settings will ensure that the volume mesh to have a size 0.05 m (Absolute mesh size) at the surface and then transition to a size of (Absolute mesh size) × (Influence size factor) at a distance 2.0 m (Influence distance).
  2. Switch the Boundary layer flag to On.
    Mesh controls related to the boundary layer become available.
  3. Ensure that the Boundary layer type is set to Full Control.
  4. Set Resolve to Total Layer Height.
    This will set the total layer height based on the other settings you provide.
  5. Set the remaining settings as follows:
    1. Set First element height to 0.01.
    2. Set Growth rate to 1.3.
    3. Set the Number of layers to 4.
    4. Set the Boundary layer elements type to Tetrahedron.

      Figure 17.

Instead of repeating the above steps for the beam surface group, you can propagate the mesh attribute settings for cylinder surface group to beam surface group.

  1. In the Data Tree, under cylinder, right-click on Surface Mesh Attributes.
  2. Select Propagate.
  3. In the Propagate dialog, select the beam surface group and click Propagate.

Define Mesh Extrusion

The present simulation is equivalent to a representation of a 2D cross section of the model. In AcuSolve, 2D models are simulated by having just one element across the faces of the cross section. Thus, when these faces are set up with an identical boundary condition, it coerces the corresponding nodes across the faces to have same results. In this problem, these faces are the negative and positive z-surfaces. This kind of mesh is achieved in AcuSolve with mesh extrusion process. In the following steps you will define the process of extrusion of the mesh between these surfaces.

  1. Expand the Model Data Tree item.
  2. Right-click on Mesh Extrusions and select New.
  3. Rename Mesh Extrusion 1 to z_extrusion.
  4. Right-click on z_extrusion and select Define.
  5. In the Mesh Extrusion dialog, make the following settings.
    1. Check that the Geometry type is set to surface.
    2. Select the surfaces from drop-downs for Side 1 and Side 2 as z_neg and z_pos, respectively.
    3. Check that the Extrusion type is set to Number of layers.
    4. Set Number of layers equal to 1.
    5. Set Extrusion options to All tets.

      Figure 18.
  6. Click OK to close the dialog.

Generate the Mesh

In the next steps you will generate the mesh that will be used when computing a solution for the problem.

  1. Click on the toolbar to open the Launch AcuMeshSim dialog.
  2. Click Ok to begin meshing.

    During meshing an AcuTail window opens. Meshing progress is reported in this window. A summary of the meshing process indicates that the mesh has been generated.

    Note: The actual number of nodes and elements, and memory usage may vary slightly from machine to machine.
  3. Visualize the mesh in the modeling window.
    1. Right-click Surfaces in the Data Tree and click Display on.
    2. Right-click Surfaces in the Data Tree, select Display type and click solid & wire.
    3. Rotate and zoom in the model to analyze the various mesh regions.

    Figure 19.
  4. Save the database to create a backup of your settings.

Compute the Solution and Review the Results

Run OptiStruct

  1. Start OptiStruct from the Windows Start menu by clicking Start > Altair <version> > OptiStruct.
  2. Click to browse for the file to open.
  3. Navigate to file slab_dcfsi.fem and click Open.
  4. Click Run to launch OptiStruct.

    Figure 20.
    As the solution progresses, a HyperWorks Solver View window opens. OptiStruct solution progress is reported in this window.

    OptiStruct will initiate the socket connection and wait for AcuSolve to respond to its signal before proceeding with the solution.

Run AcuSolve

In the next steps you will launch AcuSolve to compute the solution for this case.

  1. Click on the toolbar to open the Launch AcuSolve dialog.

    For this case, the default settings will be used. AcuSolve will run using four processors (if available, higher number of processors may be specified) and AcuConsole will generate AcuSolve input files and launch AcuSolve. AcuSolve will calculate the transient solution for this problem.

  2. Click Ok to start the solution process.
    As the solution progresses, an AcuTail window will open. Solution progress is reported in this window.

    When AcuSolve is started, it will listen to the socket port specified while setting up the external code coupling, for an initial communication from OptiStruct. You must make sure to start the OptiStruct run which will initialize the socket port for communication. Once the connection is established, the solvers will alternatively send and receive data through the simulation steps.

    A summary of the run printed in the AcuTail dialog indicates that AcuSolve has finished running the solution.

    Figure 21.
  3. Close the AcuTail window and save the database to create a backup of your settings.

Monitor the Solution with AcuProbe

AcuProbe can be used to monitor various variables over solution time.

  1. Open AcuProbe by clicking on the toolbar.
  2. In the Data Tree on the left, expand Time History > Tip_MonitorPoint > node 1.
  3. Right-click on mesh_y_displacement and select Plot.
    Note: You might need to click on the toolbar in order to properly display the plot.

    Figure 22.

    The node 1 lies at the tip of the beam. The plot above thus shows the displacement of the tip of the beam due to the fluid forces as the beam interacts with the flow.

  4. You can also save the plots as an image.
    1. From the AcuProbe dialog, click File > Save.
    2. Enter a name for the image and click Save.
  5. The time series data of the variables can also be exported as a text file for further post-processing.
    1. Right-click on the variable that you want to export and click Export.
    2. Enter a File name and choose .txt for the Save as type.
    3. Click Save.

View Results with AcuFieldView

The tutorial has been written with the assumption that you have become familiar with the AcuFieldView interface and basic operations. In general, it will be helpful to understand the following basics:
  • How to find the data readers in the File menu and open up the desired reader panel for data input.
  • How to find the visualization panels either from the toolbar or the Visualization menu, so you can create and modify surfaces in AcuFieldView.
  • How to move the data around the modeling window using mouse controls to translate, rotate and zoom in to the data.

This tutorial shows you how to work with steady state analysis data.

Start AcuFieldView

Click on the AcuConsole toolbar to open the Launch AcuFieldView dialog.
You will see that the pressure contours have already been displayed on all the boundary surfaces with mesh. When results of a transient simulation is loaded in AcuConsole, the displayed results correspond to the last time step of the simulation.

Figure 23.

Set up AcuFieldView

  1. Close the Boundary Surface dialog.
  2. Click on the AcuConsole toolbar to open the Launch AcuFieldView dialog.
  3. Click Viewer Options.

    Figure 24.
  4. In the Viewer Options dialog, deselect the Perspective check box to turn it off.
  5. Disable axis markers by clicking Axis Markers.
  6. Close the dialog.
  7. Click on the Colormap Specification icon on the toolbar.
  8. In the Scalar Colormap Specification dialog, click Background and select white.
  9. Close the dialog.
  10. From the toolbar, click to turn off the outline display.
    Your AcuFieldView display should now look like this.

    Figure 25.

View Beam Displacement Animation

  1. Click to open the Boundary Surface dialog.
  2. Turn off the visibility for the active boundary surfaces.
  3. Click to open the Coordinate Surface dialog.
  4. Create a new coordinate surface at the mid – Z coordinate plane by selecting Z of Coord Plane.
    The coordinate surface created is the mid plane between the z_neg and z_pos surfaces.
  5. Change the Coloring to Scalar.
  6. Change the Display Type to Smooth.
  7. Select x-velocity as the Scalar Function to display.
  8. Click the Colormap tab, and change Scalar Coloring to Local.
  9. From the Defined Views, select Viewing Direction as +Z.
    Your AcuFieldView view should now look like this. The visible shape of the beam is its deformed shape at the end of last time step in the simulation.

    Figure 26.
  10. Close the Coordinate Surface dialog.
  11. From the Tools, select Flipbook Build Mode.
  12. In the Flipbook Size Warning window, click OK.
  13. Click Tools > Transient Data.
    The Transient Data Controls dialog opens.

    Figure 27.

If the Sweep Control in this dialog says Sweep instead of Build, the Flipbook Build Mode is not active. In Sweep mode, you will be able to create and visualize the animation but you will not be able to save it. To be able to save the animation, enable the Flipbook Build Mode.

  1. Drag the time step slider to its leftmost position. Alternatively, enter zero in the Time Step or Solution Time box.
  2. Click Apply.
    The displayed state now corresponds to the initial state of the domain.

    Figure 28.
  3. Click Build.
    AcuFieldView will build the frame by frame animation of the solution progressing through all of the available time steps. You will be able to see the progress in a Building Flipbook dialog.
  4. In the Flipbook Controls dialog, click Frame Rate.
  5. For Minimum Time, enter 0.2 seconds.
  6. Click Close.
  7. Click Play to play the animation.
    As the animation progresses, you will be able to see the alternating vortices on top and bottom surface of the beam, causing an oscillating motion in the beam. This oscillating motion is responsible for generation of piezoelectric charge in the top and bottom layers of the beam.
  8. To save the animation, click Pause , then click Save.


In this AcuSolve tutorial, you successfully set up and solved an FSI problem using the Direct Coupling, or DC-FSI approach. DC-FSI approach is a co-simulation approach where both the structural and the fluid solvers run simultaneously, and exchange information at each time step of the simulation. The fluid solver passes the flow and pressure information to the structural solver, which are used to determine the displacements in the structure. The structural solver then passes the displacement information to the fluid solver, which then recalculates the flow and pressure field. Both the solvers thus update and exchange the results of the simulation to achieve the solution. You started the tutorial by creating a database in AcuConsole, importing and meshing the fluid portion geometry, and setting up the basic simulation parameters. Then you set up the structure which interacted with the flow such that its position was updated by the displacement data received from the structural solver at each time step. As a final step, you defined the parameters for setting up the connection between AcuSolve and the structural solver, and generated a solution with co-simulation. Results were post-processed in AcuFieldView, where you generated an animation of the beam’s displacement as it interacted with the fluid flow. New features that were introduced in this tutorial include: setting up a Direct-Coupled FSI simulation (DC-FSI), AcuSolve/OptiStruct multiphysics coupling, setting up external code parameters to support coupling, and assigning external code parameters to surfaces.