00001 #ifndef GRAVITY_PROTOTYPES_H 00002 #define GRAVITY_PROTOTYPES_H 00003 #include "../copyright.h" 00004 /*============================================================================*/ 00005 /*! \file prototypes.h 00006 * \brief Prototypes for all public functions in the /src/gravity directory */ 00007 /*============================================================================*/ 00008 #include <stdio.h> 00009 #include <stdarg.h> 00010 #include "../athena.h" 00011 #include "../defs.h" 00012 00013 #include "../config.h" 00014 00015 /* bvals_grav.c */ 00016 #ifdef SELF_GRAVITY 00017 void bvals_grav_init(MeshS *pM); 00018 void bvals_grav_fun(DomainS *pD, enum BCDirection dir, VGFun_t prob_bc); 00019 void bvals_grav(DomainS *pDomain); 00020 #endif 00021 00022 /* selfg.c */ 00023 #ifdef SELF_GRAVITY 00024 VDFun_t selfg_init(MeshS *pM); 00025 void selfg_flux_correction(GridS *pG); 00026 #endif /* SELF_GRAVITY */ 00027 00028 /* selfg_multigrid.c */ 00029 #ifdef SELF_GRAVITY 00030 void selfg_multig_1d(DomainS *pD); 00031 void selfg_multig_2d(DomainS *pD); 00032 void selfg_multig_3d(DomainS *pD); 00033 void selfg_multig_3d_init(MeshS *pM); 00034 #endif /* SELF_GRAVITY */ 00035 00036 /* selfg_fft.c */ 00037 #ifdef SELF_GRAVITY 00038 #if defined(FFT_ENABLED) && defined(SELF_GRAVITY_USING_FFT) 00039 void selfg_fft_1d(DomainS *pD); 00040 void selfg_fft_2d(DomainS *pD); 00041 void selfg_fft_3d(DomainS *pD); 00042 void selfg_fft_2d_init(MeshS *pM); 00043 void selfg_fft_3d_init(MeshS *pM); 00044 #endif /* FFT_ENABLED */ 00045 #if defined(FFT_ENABLED) && defined(SELF_GRAVITY_USING_FFT_OBC) 00046 void selfg_fft_obc_3d(DomainS *pD); 00047 void selfg_fft_obc_3d_init(MeshS *pM); 00048 #endif /* FFT_ENABLED SELF_GRAVITY_USING_FFT_OBC */ 00049 00050 00051 00052 #endif /* SELF_GRAVITY */ 00053 00054 #endif /* GRAVITY_PROTOTYPES_H */