OpenFPM  5.2.0
Project that contain the implementation of distributed structures
main_vic_petsc.cpp File Reference
#include "config.h"
#include "interpolation/interpolation.hpp"
#include "Grid/grid_dist_id.hpp"
#include "Vector/vector_dist.hpp"
#include "Matrix/SparseMatrix.hpp"
#include "Vector/Vector.hpp"
#include "FiniteDifference/FDScheme.hpp"
#include "Solvers/petsc_solver.hpp"
#include "interpolation/mp4_kernel.hpp"
#include "Solvers/petsc_solver_AMG_report.hpp"

Go to the source code of this file.

Data Structures

struct  poisson_nn_helm
 

Typedefs

typedef grid_dist_id< 3, float, aggregate< float[3]> > grid_type
 
typedef vector_dist< 3, float, aggregate< float[3], float[3], float[3], float[3], float[3]> > particles_type
 

Functions

template<typename grid >
void calc_and_print_max_div_and_int (grid &g_vort)
 
void init_ring (grid_type &gr, const Box< 3, float > &domain)
 
void helmotz_hodge_projection (grid_type &gr, const Box< 3, float > &domain, petsc_solver< double > &solver, petsc_solver< double >::return_type &x_, bool init)
 
void remesh (particles_type &vd, grid_type &gr, Box< 3, float > &domain)
 
void comp_vel (Box< 3, float > &domain, grid_type &g_vort, grid_type &g_vel, petsc_solver< double >::return_type(&phi_s)[3], petsc_solver< double > &solver)
 
template<unsigned int prp>
void set_zero (grid_type &gr)
 
template<unsigned int prp>
void set_zero (particles_type &vd)
 
template<typename grid >
void calc_rhs (grid &g_vort, grid &g_vel, grid &g_dwp)
 
void rk_step1 (particles_type &particles)
 
void rk_step2 (particles_type &particles)
 
template<typename grid , typename vector >
void do_step (vector &particles, grid &g_vort, grid &g_vel, grid &g_dvort, Box< 3, float > &domain, interpolate< particles_type, grid_type, mp4_kernel< float >> &inte, petsc_solver< double >::return_type(&phi_s)[3], petsc_solver< double > &solver)
 
template<typename vector , typename grid >
void check_point_and_save (vector &particles, grid &g_vort, grid &g_vel, grid &g_dvort, size_t i)
 
int main (int argc, char *argv[])
 

Variables

constexpr int x = 0
 
constexpr int y = 1
 
constexpr int z = 2
 
float ringr1 = 1.0
 
float sigma = 1.0/3.523
 
float tgtre = 3000.0
 
float nu = 1.0/tgtre
 
float dt = 0.0125
 
const unsigned int nsteps = 10001
 
constexpr unsigned int vorticity = 0
 
constexpr unsigned int velocity = 0
 
constexpr unsigned int p_vel = 1
 
constexpr int rhs_part = 2
 
constexpr unsigned int old_vort = 3
 
constexpr unsigned int old_pos = 4