Procedures

ProcedureLocationProcedure TypeDescription
acf_theo script Subroutine

Function that returns the theoretical acf PARAM%imp_acf.

Read more…
acf_wiener func_acf Subroutine

Function that returns the acf of an array.

Read more…
add_nois script Subroutine

Function that returns the starting surface of random heights

Read more…
add_tang skku_profiles Function

Function that adds to the series mean the border integrals as explained in the docs

Read more…
alloc_tabs script Subroutine

Function that allocates arrays in global variable PARAM

Read more…
apod2 func_acf Subroutine

Function that returns an apodized array.
To prevent gaps from appearing after FFT (because of non periodic waves), the surface must be transformed, but not too much. Here a modified Tukey window is determined. The starting surface is not modified below the “correlation lengths”. Above the correlation lengths, a smooth decrease is forced with a cosine squared.

Read more…
apod_acf script Subroutine

Function that apodize the acf to prevent spectral leakage

Read more…
apod_sur script Subroutine

Function that apodize the reference surface for acf calculus purposes

Read more…
autocov_impo func_acf Function

Function that returns

Read more…
build_heights skku_profiles Subroutine

Function that returns a set of heights that matches desired statistical moments.

Read more…
calc_acf script Subroutine

Function that returns the autocorrelation function of a surface in PARAM%acf_surf

Read more…
calc_ffh script Subroutine

Function that returns …

Read more…
calc_imp_acf func_acf Subroutine

Function that returns the theoretical autocorrelation function in an array.
The autocorrelation function is supposed to be obtained from a real surface which must be periodic or nearly periodic (because of the use of FFTs). In addition, the surface is supposed to be 0 mean and normalized (), therefore acf is zero-mean and normalized so that its max value is 1.

Read more…
calc_ord script Subroutine

Function that returns the vector PARAM%order that contains the heights order.

Read more…
calc_res_acf script Subroutine

Function that returns crit_acf the mean absolute difference between theoretical and calculated acfs, above z (usually 0.2 as recommended by iso 25178)

Read more…
calc_z_f script Subroutine

Function that returns PARAM%surf, the surface made of heights with the required statistical moments, in the right order.

Read more…
calc_z_i script Subroutine

Function that returns the starting surface of random heights

Read more…
calculs_skku_exp3 skku_profiles Subroutine

Function to calculate the skewness and kurtosis of an exponential series.
The principle is the same as calculs_skku_tan, however it fits better some particular series quite binary (roughly two heights).

Read more…
calculs_skku_tan skku_profiles Subroutine

Function to calculate the skewness and kurtosis of a tangent series

Read more…
cost_func_skku skku_profiles Subroutine

Quantify de distance between desired moments and calculated moments

def_size script Subroutine

Geometrical characteristics of the numerical surface

digi_fil script Subroutine

Function that applies the digital filter to the random heights

Read more…
end_loop script Subroutine

The loop ends here

end_scri script Subroutine

End of script

fitness_skku_anal skku_profiles Function

Generic cost function: difference between the imposed statistical moments and those obtained. The optimization problem must be turned into a maximization problem (as often in the optimization routines).

Read more…
make_msk script Subroutine

Function that reads a digital surf file and turns it into a mask

Read more…
make_scratches script Subroutine

This subroutine initializes a real matrix tab of dimensions nx by ny with ones

Read more…
make_tex script Subroutine

Function that creates a periodic macro-texture: knowing the FFT of an analytical texture

Read more…
nb_procs script Subroutine

Number of concurrent threads

pikaia_skku_solver skku_profiles Subroutine

This is a refactoring of the PIKAIA unconstrained optimization code from the High Altitude Observatory. The original code is public domain and was written by Paul Charbonneau & Barry Knapp.

Read more…
plt__acf script Subroutine

Function that calculates the mean absolute difference between the desired Acf and the one obtained. However, the important zone where both should match is above the cut - where the correlation lengths are determined.

Read more…
prg_surf main Subroutine

Main function…

Read more…
profil_theo_trie_1D skku_profiles Subroutine

Function that generates the heights when the function limits have been determined.

Read more…
read_img script Subroutine

Function that reads a digital surf file and returns the surface in PARAM%surf

Read more…
read_job script Subroutine

Function that reads a script file. Keywords are identified and corresponding actions are triggered.

Read more…
repr_img script Subroutine

Function that set parameters for image reproduction

Read more…
save_img script Subroutine

Function that save an array tab as a digital surf file.

Read more…
smooth__ script Subroutine

Function that applies a low-pass filter to the surface PARAM%surf

Read more…
spct_sur script Subroutine

Returns the default surface spectrum

Read more…
sta_loop script Subroutine

Starting the loop

sta_scri script Subroutine

Start the script reading

sta_theo script Subroutine

Required statistical moments

stat_sur script Subroutine

Define surface statistical moments as reference

Read more…
sub_surf script Subroutine

Function that returns the best subsurface from the final surface.

Read more…
surface_analysis analyses Subroutine

The function analyses determinates ISO 25178 parameters of the current surface.

Read more…
tang skku_profiles Function

Profile function based on the tangent function

Read more…
call~~graph~~CallGraph proc~acf_theo acf_theo proc~calc_imp_acf calc_imp_acf proc~acf_theo->proc~calc_imp_acf ellipse_acf ellipse_acf proc~acf_theo->ellipse_acf proc~acf_wiener acf_wiener calc_fftw3_real_bwd calc_fftw3_real_bwd proc~acf_wiener->calc_fftw3_real_bwd calc_fftw3_real_fwd calc_fftw3_real_fwd proc~acf_wiener->calc_fftw3_real_fwd tab_calc_fftw3_real_bwd tab_calc_fftw3_real_bwd proc~acf_wiener->tab_calc_fftw3_real_bwd tab_calc_fftw3_real_fwd tab_calc_fftw3_real_fwd proc~acf_wiener->tab_calc_fftw3_real_fwd trans_corner2center trans_corner2center proc~acf_wiener->trans_corner2center proc~add_nois add_nois proc~build_heights build_heights proc~add_nois->proc~build_heights scramble scramble proc~add_nois->scramble std_array std_array proc~add_nois->std_array proc~add_tang add_tang proc~tang tang proc~add_tang->proc~tang proc~alloc_tabs alloc_tabs proc~apod2 apod2 proc~apod_acf apod_acf proc~apod_acf->proc~apod2 proc~apod_acf->ellipse_acf proc~apod_sur apod_sur apod apod proc~apod_sur->apod proc~apod_sur->std_array proc~autocov_impo autocov_impo proc~pikaia_skku_solver pikaia_skku_solver proc~build_heights->proc~pikaia_skku_solver proc~profil_theo_trie_1d profil_theo_trie_1D proc~build_heights->proc~profil_theo_trie_1d sort_array2 sort_array2 proc~build_heights->sort_array2 proc~build_heights->std_array proc~calc_acf calc_acf proc~calc_acf->proc~acf_wiener proc~calc_ffh calc_ffh proc~calc_ffh->calc_fftw3_real_bwd proc~calc_ffh->calc_fftw3_real_fwd calc_moments calc_moments proc~calc_ffh->calc_moments proc~calc_imp_acf->proc~apod2 proc~calc_imp_acf->proc~autocov_impo proc~calc_ord calc_ord init_order init_order proc~calc_ord->init_order proc~calc_ord->sort_array2 proc~calc_res_acf calc_res_acf proc~calc_z_f calc_z_f proc~calc_z_f->proc~build_heights proc~calc_z_f->std_array proc~calc_z_i calc_z_i proc~calc_z_i->proc~build_heights proc~calc_z_i->scramble proc~calc_z_i->std_array proc~calculs_skku_exp3 calculs_skku_exp3 proc~calculs_skku_tan calculs_skku_tan proc~calculs_skku_tan->proc~add_tang proc~calculs_skku_tan->proc~tang proc~cost_func_skku cost_func_skku proc~fitness_skku_anal fitness_skku_anal proc~cost_func_skku->proc~fitness_skku_anal proc~def_size def_size proc~digi_fil digi_fil proc~digi_fil->calc_fftw3_real_bwd proc~digi_fil->calc_fftw3_real_fwd proc~digi_fil->std_array proc~end_loop end_loop proc~end_scri end_scri end_fftw3 end_fftw3 proc~end_scri->end_fftw3 proc~fitness_skku_anal->proc~calculs_skku_exp3 proc~fitness_skku_anal->proc~calculs_skku_tan proc~make_msk make_msk proc~make_scratches make_scratches proc~make_tex make_tex calc_fftw3 calc_fftw3 proc~make_tex->calc_fftw3 proc~make_tex->calc_moments proc~nb_procs nb_procs omp_get_num_procs omp_get_num_procs proc~nb_procs->omp_get_num_procs init pikaia_class%init proc~pikaia_skku_solver->init solve pikaia_class%solve proc~pikaia_skku_solver->solve proc~plt__acf plt__acf dir_separator dir_separator proc~plt__acf->dir_separator proc~plt__acf->ellipse_acf get_unit get_unit proc~plt__acf->get_unit mkdir mkdir proc~plt__acf->mkdir proc~prg_surf prg_surf proc~read_job read_job proc~prg_surf->proc~read_job proc~profil_theo_trie_1d->std_array proc~read_img read_img read_surf read_surf proc~read_img->read_surf proc~read_job->proc~acf_theo proc~read_job->proc~add_nois proc~read_job->proc~alloc_tabs proc~read_job->proc~apod_acf proc~read_job->proc~apod_sur proc~read_job->proc~calc_acf proc~read_job->proc~calc_ffh proc~read_job->proc~calc_ord proc~read_job->proc~calc_z_f proc~read_job->proc~calc_z_i proc~read_job->proc~def_size proc~read_job->proc~digi_fil proc~read_job->proc~end_loop proc~read_job->proc~end_scri proc~read_job->proc~make_msk proc~read_job->proc~make_scratches proc~read_job->proc~make_tex proc~read_job->proc~nb_procs proc~read_job->proc~plt__acf proc~read_job->proc~read_img proc~repr_img repr_img proc~read_job->proc~repr_img proc~save_img save_img proc~read_job->proc~save_img proc~smooth__ smooth__ proc~read_job->proc~smooth__ proc~spct_sur spct_sur proc~read_job->proc~spct_sur proc~sta_loop sta_loop proc~read_job->proc~sta_loop proc~sta_scri sta_scri proc~read_job->proc~sta_scri proc~sta_theo sta_theo proc~read_job->proc~sta_theo proc~stat_sur stat_sur proc~read_job->proc~stat_sur proc~sub_surf sub_surf proc~read_job->proc~sub_surf proc~surface_analysis surface_analysis proc~read_job->proc~surface_analysis proc~read_job->get_unit selectcase selectcase proc~read_job->selectcase str_remove_chars str_remove_chars proc~read_job->str_remove_chars proc~repr_img->proc~acf_wiener proc~repr_img->proc~alloc_tabs proc~repr_img->proc~surface_analysis proc~repr_img->apod proc~repr_img->calc_moments fft_filter fft_filter proc~repr_img->fft_filter init_scal init_scal proc~repr_img->init_scal proc~repr_img->scramble proc~repr_img->sort_array2 proc~repr_img->std_array write_surf write_surf proc~repr_img->write_surf proc~save_img->init_scal proc~save_img->write_surf proc~smooth__->fft_filter proc~smooth__->std_array proc~spct_sur->proc~apod_sur proc~spct_sur->calc_fftw3 proc~spct_sur->get_unit proc~spct_sur->trans_corner2center random_init random_init proc~sta_scri->random_init proc~stat_sur->proc~acf_wiener proc~stat_sur->proc~apod_sur proc~stat_sur->proc~surface_analysis proc~stat_sur->sort_array2 proc~stat_sur->std_array proc~sub_surf->proc~acf_wiener proc~sub_surf->proc~build_heights proc~sub_surf->proc~calc_imp_acf proc~sub_surf->proc~calc_res_acf proc~sub_surf->calc_moments proc~sub_surf->end_fftw3 fftw_plan_with_nthreads fftw_plan_with_nthreads proc~sub_surf->fftw_plan_with_nthreads proc~sub_surf->init_order omp_get_max_threads omp_get_max_threads proc~sub_surf->omp_get_max_threads progress_bar_terminal progress_bar_terminal proc~sub_surf->progress_bar_terminal proc~sub_surf->sort_array2 tab_end_fftw3_real tab_end_fftw3_real proc~sub_surf->tab_end_fftw3_real tab_init_fftw3_real tab_init_fftw3_real proc~sub_surf->tab_init_fftw3_real proc~surface_analysis->proc~acf_wiener abbott_param abbott_param proc~surface_analysis->abbott_param calc_median calc_median proc~surface_analysis->calc_median proc~surface_analysis->calc_moments calcul_asfc_hermite calcul_asfc_hermite proc~surface_analysis->calcul_asfc_hermite calcul_normales calcul_normales proc~surface_analysis->calcul_normales proc~surface_analysis->ellipse_acf proc~surface_analysis->fft_filter proc~surface_analysis->get_unit indice_fractal indice_fractal proc~surface_analysis->indice_fractal multiple_anisotropy multiple_anisotropy proc~surface_analysis->multiple_anisotropy peaks_and_pits_curvatures peaks_and_pits_curvatures proc~surface_analysis->peaks_and_pits_curvatures surf_area surf_area proc~surface_analysis->surf_area topology topology proc~surface_analysis->topology program~main main program~main->proc~prg_surf
Help