Support

Support Options

Report a problem

About you
About the problem
Close

Forum

Initial conditions of unsteady transient analysis

  1. Daniel Kharlamov

    Dear all,

    first, thank you accepting me in your group. I am dealing with aeroelasticity analysis, where I want to couple my VLM code and GEBT. I've got managed to do that in steady state mode. However, in unsteady mode I have some troubles to do that as the gebt code is responding me "Failure of MA28AD with iflag=-1" when I prescribe initial conditions which are non-zero:

     ERROR RETURN FROM MC23A  BECAUSE
               MATRIX IS STRUCTURALLY SINGULAR, RANK =    618
     ERROR RETURN FROM MA28A/AD BECAUSE ERROR RETURN FROM MC23A/AD
      Failure of MA28AD with iflag=-1 

    So, I was looking in the manual and the code, but I can't figure out in which frame of reference those displacements and velocities of element mid points (?) are prescribed. So, I've tried to evaluate directly the time derivative of the element mid point positions and rotations in inertial FoR and I've tried to set those initial conditions by recovering them through the inverted mass matrix and using [P1,P2,P3,H1,H2,H3] obtained from the output file. In all cases I've got the same error message. Unfortunately, in the handbook it is not clearly stated in which FoR the initial conditions are prescribed.

    I've modified even the code in IO.f90 this way that it is writing me now always now a .ini_out file, where I am dumping the initial conditions. In line 609, I have now the following code:

    IF(analysis_flag==2) THEN
       init_name=TRIM(inp_name) // ".ini_out"
     
       IF(FileOpen(INIT, init_name, 'REPLACE','WRITE',error))     RETURN
     

      WRITE(INIT,'(1x,6ES25.15)')(init_cond(j,1:6) ,j=1,div_no)
      WRITE(INIT,'(1x,6ES25.15)')(init_cond(j,7:12),j=1,div_no)
     
      CLOSE(INIT)
    ENDIF

     

    But I get still the same error. Do someone know the answer?

     

    Btw, just three other questions: What is the exact difference between static and steady-state analysis? Is there an option to consider gravity? Is there a python interface available for gebt?

     

    Thanks a lot for your help in advance.

    Kind regards,
    Daniel Kharlamov

    Reply Report abuse

    Replying to Daniel Kharlamov

    1. Su Tian

      Hello Daniel,

      By 'unsteady mode', what is the actual physical process you are dealing with?

      You can read the following paper for more information. Yu, W. and Blair, M. (2012) ‘GEBT: A general-purpose nonlinear analysis tool for composite beams’, Composite Structures. Elsevier Ltd, 94(9), pp. 2677–2689. doi: 10.1016/j.compstruct.2012.04.007. This may also answer your first two extra questions.

      As for the Python script for GEBT, please check the attached package. The script 'beam.py' may have what you need. (Please remove the extension '.txt' before extract the package)

       

      Regards,

      Su

      Reply Report abuse

      Replying to Su Tian

      1. Daniel Kharlamov

        Dear Su,

        thank you for your fast answer. And, thanks for sharing your python wrapper for gebt with me. As long as I've understood, this wrapper is executing gebt as a separate command and not importing gebt directly into python as a shared object (Fortran C-bindungs, f2py)?

        I've attached the gebt input file and ini-file, where the simulation is crashing. This input files are generated automatically by my python FSI code. In this case, every member have only one element.

        So, your code is working wonderful in steady-state mode and my couplings are working fine. In unsteady mode, however, my approach is to run for every time step a separate gebt calculating and apply initial boundary condition for the current time step, which is taken from resulting initial condition of the previous time step. Therefore, I've modified IO.f90, where I am also writing out the init_cond(:,:) to a separate ".ini_out" file. I've attached the IO.f90 file to the zip-file. The data from this .ini_out file I am copying then into the .ini file for the next time step. However, at time step 2, where I am passing non-zero initial conditions coming from time step 1, the code is reporting, that the system matrix (coef(:) ?) is singular.

        I am not clear, in which FoR the initial conditions are formulated and if they are transformed as a preprocess step from one FoR into another?

        Is there a direct python code-to-code wrapper available?

        I am currently working on a paper dealing with aeroelasticity in preliminary aircraft design. I would like to use you gebt code with my nonlinear VLM ode and give a citation in the paper to your work.

        Thank you for help.

        Kind regards,
        Daniel
         

        Report abuse

      2. Daniel Kharlamov

        Dear Su,

        I think I've found a workaround: I've introduced a flag to the input file, telling gebt whether the time step is an initial time step or a time step following a previous one. I think, the overall problem are lines 150-190 in Analysis.f90. There, gebt is calculating the initial conditions for initial time step. So, if it is not the initial time step (i.e. initial_timestep=0), he is over jumping this chunk of code. Can you confirm that? I've attached the modified Analysis.f90.

        Thanks,

        Daniel

        Report abuse