def METHOD_NAME(self):
    # add entry to dictionary for postproc
    tstep = self.data.aero.timestep_info[self.ts]
    tstep.postproc_cell['incidence_angle'] = init_matrix_structure(dimensions=tstep.dimensions,
                                                                   with_dim_dimension=False)
    # create ctypes pointers
    tstep.postproc_cell['incidence_angle_ct_list'] = None
    tstep.postproc_cell['incidence_angle_ct_pointer'] = None
    tstep.postproc_cell['incidence_angle_ct_list'], tstep.postproc_cell['incidence_angle_ct_pointer'] = \
        standalone_ctypes_pointer(tstep.postproc_cell['incidence_angle'])
    # call calculate
    uvlmlib.uvlm_calculate_incidence_angle(self.data.aero.timestep_info[self.ts],
                                           self.data.structure.timestep_info[self.ts])
    # calculate ratio of stalled panels and print
    stalled_panels = False
    stalled_surfs = np.zeros((tstep.n_surf, ), dtype=int)
    added_panels = []
    for i_surf in range(tstep.n_surf):
        added_panels.append([])
    for i_elem in range(self.data.structure.num_elem):
        for i_local_node in range(self.data.structure.num_node_elem):
            airfoil_id = self.data.aero.aero_dict['airfoil_distribution'][i_elem, i_local_node]
            if self.settings['airfoil_stall_angles']:
                i_global_node = self.data.structure.connectivities[i_elem, i_local_node]
                for i_dict in self.data.aero.struct2aero_mapping[i_global_node]:
                    i_surf = i_dict['i_surf']
                    i_n = i_dict['i_n']
                    if i_n in added_panels[i_surf]:
                        continue
                    if i_n == tstep.dimensions[i_surf][1]:
                        continue
                    limits = self.settings['airfoil_stall_angles'][str(airfoil_id)]
                    if tstep.postproc_cell['incidence_angle'][i_surf][0, i_n] < float(limits[0]):
                        stalled_panels = True
                        stalled_surfs[i_surf] += tstep.postproc_cell['incidence_angle'][i_surf].shape[1]
                    elif tstep.postproc_cell['incidence_angle'][i_surf][0, i_n] > float(limits[1]):
                        stalled_panels = True
                        stalled_surfs[i_surf] += tstep.postproc_cell['incidence_angle'][i_surf].shape[1]
    if stalled_panels:
        if self.settings['print_info']:
            cout.cout_wrap('Some panel has an incidence angle out of the linear region', 1)
            cout.cout_wrap('The number of stalled panels per surface id are:', 1)
            for i_surf in range(tstep.n_surf):
                cout.cout_wrap('\ti_surf = ' + str(i_surf) + ': ' + str(stalled_surfs[i_surf]) + ' panels.', 1)
            # cout.cout_wrap('In total, the ratio of stalled panels is: ', str(stalled_surfs.sum()/))
    if self.settings['output_degrees']:
        for i_surf in range(tstep.n_surf):
            tstep.postproc_cell['incidence_angle'][i_surf] *= 180/np.pi