Challenge

Bird Strike - Project - 2

Bird Strike in Aero Engine

Aim:

  • Separate the given model to each file according to parts and then run the model using include keywords. The parts (blade, hub, casing & bird), related properties in different files, boundary conditions, and solver deck should be in the main file.

Procedure:

  1. The first step is to open the given file in the LS-Prepost interface. Initially, all the parts were in a single file so the parts present in the file are separately saved in different files in .k format. The important thing is to choose a proper numbering system as I'll be using an include file later to create an assembly. The numbering should be very consistent and should not repeat. Here are my naming and numbering formats for my deck preparation.
    • NODE ID ELEMENT ID PART ID SECTION ID MAT ID
      bl_casing.k 10000 100000 8001 2 1003
      blade.k 20000 200000 8002 2 1002
      hub.k 30000 300000 8003 3 1002
      bird.k 4000 40000 8004 2 1004
  2. First, create the part card for the casing. Now delete all other parts from the file. Then create section_Id according to the shell elements present in the casing. Then create the material for the casing and give reference in the part card. Now renumber the remaining node_ID, element_ID, section_ID and mat_ID according to the previous scheme, then save the file differently. The same procedure can be followed to create other files as well. Just the difference is that for the hub the element formulation is different instead of the shell we'll give the solid element formulation.
  3. The next step is to create a partset including Al_mat.k(which is given in the question statement) blade.k, & hub.k this has been done to make sure both the blade and hub move as one single body. The NSID of the partset is taken as 17000.
    • A partset has been created from the create entity in LS-Prepost whose ID is given as 18000. As the partset doesn't have any mat so the given mat card has also been included in the partset file. After creating the partset the partset file looks like below
      • $# LS-DYNA Keyword file created by LS-PrePost(R) V4.7.17 - 08Jul2020
        $# Created on Sep-26-2022 (23:33:48)
        *KEYWORD
        *TITLE
        $#                                                                         title
        PARTSET
        *SET_PART_LIST_TITLE
        BLADE_HUB 
        $#     sid       da1       da2       da3       da4    solver      
             18000       0.0       0.0       0.0       0.0MECH
        $#    pid1      pid2      pid3      pid4      pid5      pid6      pid7      pid8
              8002      8003         0         0         0         0         0         0
        *INCLUDE
        $#                                                                      filename
        B:Master_ProgramLS-DYNAChallengesProject_2ITR2Includeblade.k
        *INCLUDE
        $#                                                                      filename
        B:Master_ProgramLS-DYNAChallengesProject_2ITR2Includehub.k
        *INCLUDE
        $#                                                                      filename
        B:Master_ProgramLS-DYNAChallengesProject_2ITR2IncludeAl_mat.k
        *END
        
  4. The next step is to create the contact cards. There are two types of contacts here. The first one is tied-contact between blade and hub, the next one is for the contact between bird and blade. For contacts, the numbering scheme is chosen to start from 14000.
    1. Surface to Surface Contact: This contact is defined to capture the contact behaviour of bird and blade. For this contact formulation, the master part is chosen as the blade and the slave part as the bird.
    2. Tied-Contact: The tied contact is between the blade and the hub so that both the part can move as a rigid body and the motion can be transferred from the hub to the blade. Here the master part is the hub and the slave part is the blade.
    3. The contact card is given below-
      • $# LS-DYNA Keyword file created by LS-PrePost(R) V4.7.17 - 08Jul2020
        $# Created on Sep-26-2022 (14:26:10)
        *KEYWORD
        *TITLE
        $#                                                                         title
        CONTACT
        *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE_ID
        $#     cid                                                                 title
             14000BLADE AND BIRD
        $#    ssid      msid     sstyp     mstyp    sboxid    mboxid       spr       mpr
              8004      8002         3         3         0         0         0         0
        $#      fs        fd        dc        vc       vdc    penchk        bt        dt
               0.0       0.0       0.0       0.0       0.0         0       0.01.00000E20
        $#     sfs       sfm       sst       mst      sfst      sfmt       fsf       vsf
               1.0       1.0       0.0       0.0       1.0       1.0       1.0       1.0
        *CONTACT_TIED_NODES_TO_SURFACE_ID
        $#     cid                                                                 title
             14001HUB AND BLADE
        $#    ssid      msid     sstyp     mstyp    sboxid    mboxid       spr       mpr
              8002      8003         3         3         0         0         0         0
        $#      fs        fd        dc        vc       vdc    penchk        bt        dt
               0.0       0.0       0.0       0.0       0.0         0       0.01.00000E20
        $#     sfs       sfm       sst       mst      sfst      sfmt       fsf       vsf
               1.0       1.0       0.0       0.0       1.0       1.0       1.0       1.0
        *END
        
  5. The next step is to create the boundary card to include in the main file. For boundary conditions, we are creating two types of boundary conditions which are SPC and Initial velocity.
    1. SPC: The SPC has been created for casing as it remained constrained. This signifies that the casing is just here for enclosing the blade and not the point of interest in this study.
    2. Initial Velocity: Initial velocity boundary condition is given to impose the angular velocity on the partset which include both blade and hub part. The angular velocity of the blade and the hub is taken as 0.209 rad/ms. In the same way, the velocity of the bird has also been defined which is in the linear x direction and the value is taken as 28 mm/ms.
    3. The boundary card is given below-
      • $# LS-DYNA Keyword file created by LS-PrePost(R) V4.7.17 - 08Jul2020
        $# Created on Sep-26-2022 (14:36:12)
        *KEYWORD
        *TITLE
        $#                                                                         title
        LS-DYNA keyword deck by LS-PrePost
        *BOUNDARY_SPC_SET_ID
        $#      id                                                               heading
                 0SPC_CASING_NSET
        $#    nsid       cid      dofx      dofy      dofz     dofrx     dofry     dofrz
             17000         0         0         0         0         0         0         0
        *INITIAL_VELOCITY_GENERATION
        $#nsid/pid      styp     omega        vx        vy        vz     ivatn      icid
             18000         1     0.209       0.0       0.0       0.0         0         0
        $#      xc        yc        zc        nx        ny        nz     phase    irigid
               0.0       0.0       0.0       1.0       0.0       0.0         0         0
              8004         2       0.0      28.0       0.0       0.0         0         0
               0.0       0.0       0.0       0.0       0.0       0.0         0         0
        *END
        
  6. The next step is to define the control cards. In the control card, we've created hourglass, timestep and termination cards.
    1. In the timestep card, the dtinit is given as 0.01 and the total termination time is taken as 10ms. The control card is given below
      • $# LS-DYNA Keyword file created by LS-PrePost(R) V4.7.17 - 08Jul2020
        $# Created on Sep-26-2022 (14:39:45)
        *KEYWORD
        *TITLE
        $#                                                                         title
        CONTROL
        *CONTROL_HOURGLASS
        $#     ihq        qh  
                 1       0.1
        *CONTROL_TERMINATION
        $#  endtim    endcyc     dtmin    endeng    endmas     nosol     
              10.0         0       0.0       0.01.000000E8         0
        *CONTROL_TIMESTEP
        $#  dtinit    tssfac      isdo    tslimt     dt2ms      lctm     erode     ms1st
              0.01       0.9         0       0.0-1.7500E-5         0         0         0
        $#  dt2msf   dt2mslc     imscl    unused    unused     rmscl    unused      ihdo
               0.0         0         0                           0.0                   0
        *END
        
  7. Now to assemble all the above files in a single main we've to use the include keyword to create a subsystem assembly. After including everything into one file we've to save and open the file again in LS-Prepost. Here we've to check all the references and run the keyword checker, if any errors are present then we've to work to eliminate the errors. If everything looks good then run the main file in LS-Run and check how it runs or shows error.
  8. After the assembly, the main file looks like this
    • $# LS-DYNA Keyword file created by LS-PrePost(R) V4.7.17 - 08Jul2020
      $# Created on Sep-27-2022 (21:03:58)
      *KEYWORD_ID
      Main_v2
      *TITLE
      $#                                                                         title
      Main_File
      *INCLUDE
      $#                                                                      filename
      Includepart_setpart_set.k
      *INCLUDE
      $#                                                                      filename
      Includebird.k
      *INCLUDE
      $#                                                                      filename
      Includebl_casing.k
      *INCLUDE
      $#                                                                      filename
      B:Master_ProgramLS-DYNAChallengesProject_2ITR2Includeb_cond.k
      *INCLUDE
      $#                                                                      filename
      B:Master_ProgramLS-DYNAChallengesProject_2ITR2Includecontact.k
      *INCLUDE
      $#                                                                      filename
      B:Master_ProgramLS-DYNAChallengesProject_2ITR2Includeoutput.k
      *INCLUDE
      $#                                                                      filename
      B:Master_ProgramLS-DYNAChallengesProject_2ITR2Includecontrol.k
      *END
      ​

Conclusion

  1. It took a lot of time to understand the whole process of this challenge. When I started I had little to no knowledge about the includes and assembly of a subsystem. It took about 6 iterations to find out the functionality and nature of include keyword.
  2. Initially, I've just created the individual part files and saved all the other references in the main file. This file ended up in a fatal error when I opened the main file in ls-prepost. Kishan Jee helped a lot in understanding the functionality of the include keyword.
  3. In the next iteration, I created a separate file for section and mat cards as well as the other keywords. This also ended up in a fatal error.
  4. In the next iteration, I reached considerable success. Where my main files were able to read all the sub-system files without any error. Now all the problem remaining was referencing errors. Which were caused by the numbering error. I've revised the numbering system at least 5 times in order to get away with all the errors.
  5. Finally, my 12th iteration finally worked and ran for almost 5 hours. I've got my simulation results for the first time after 20 days of my start. Still, I'm working on the mass scaling to reduce the run time and doing trial and error iteratively.
Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.