VERB4D
Functions
Diffusion_ADI3.h File Reference

Calculating the diffusion in 2D using method from Jihye Shin and Sungsoo Kim (2008) More...

#include "Matrix.h"
#include "MatrixSolver.h"

Go to the source code of this file.

Functions

bool Diffusion_2D_ADI3 (Matrix2D< double > &psd, Matrix2D< double > x, Matrix2D< double > y, int x_size, int y_size, Matrix1D< double > x_LBC, Matrix1D< double > x_UBC, Matrix1D< double > y_LBC, Matrix1D< double > y_UBC, string x_LBC_type, string x_UBC_type, string y_LBC_type, string y_UBC_type, Matrix2D< double > Dxx, Matrix2D< double > Dyy, Matrix2D< double > Dxy, Matrix2D< double > Dyx, Matrix2D< double > G, Matrix2D< double > Sources, Matrix2D< double > Losses, double dt)
 

Detailed Description

Calculating the diffusion in 2D using method from Jihye Shin and Sungsoo Kim (2008)

Created on: May 28, 2011 Author: dimath

Function Documentation

bool Diffusion_2D_ADI3 ( Matrix2D< double > &  psd,
Matrix2D< double >  x,
Matrix2D< double >  y,
int  x_size,
int  y_size,
Matrix1D< double >  x_LBC,
Matrix1D< double >  x_UBC,
Matrix1D< double >  y_LBC,
Matrix1D< double >  y_UBC,
string  x_LBC_type,
string  x_UBC_type,
string  y_LBC_type,
string  y_UBC_type,
Matrix2D< double >  Dxx,
Matrix2D< double >  Dyy,
Matrix2D< double >  Dxy,
Matrix2D< double >  Dyx,
Matrix2D< double >  G,
Matrix2D< double >  Sources,
Matrix2D< double >  Losses,
double  dt 
)

Create model matrices and solve the system, The method is from Jihye Shin and Sungsoo Kim (2008), ALTERNATING DIRECTION IMPLICIT METHOD FOR TWO-DIMENSIONAL FOKKER-PLANCK EQUATION OF DENSE SPHERICAL STELLAR SYSTEMS

http://arxiv.org/pdf/0805.0054v1.pdf

Todo:
Fix this function - currently results in negative PSD values - using Lapack instead

Method:

For the x direction and then for the y direction

  1. Add boundary conditions AddBoundary()
  2. Add sources and Losses (only for the y direction)
  3. get the seond derivative approximation with diffusion coeficient SecondDerivativeApproximation_2D()
  4. Multiply matrix B by f (PSD_1D_x) and add matrix C - this will be the RHS for tridag()
  5. solve matrix with tridag()
Parameters
psd- phase space density
x- one dimensional slice
y- one dimensional slice
x_size- size of x slice
y_size- size of y slice
x_LBC- lower boundary condition for param x
x_UBC- upper boundary condition for param x
y_LBC- lower boundary condition for param y
y_UBC- upper boundary condition for param y
x_LBC_type- type of lower boundary condition for param x
x_UBC_type- type of upper boundary condition for param x
y_LBC_type- type of lower boundary condition for param y
y_UBC_type- type of upper boundary condition for param y
Dxx- 2D Diffusion matrix
Dyy- 2D Diffusion matrix
Dxy- 2D Diffusion matrix
Dyx- 2D Diffusion matrix
G- 2D used for Jacobian to normalize matrix
Sources- matrix used for Sources
Losses- Matrix used for Losses (loss cone)
dt- change in time of single time step