Carmen Code
 All Classes Files Functions Variables Macros Pages
Functions
DivCleaning.cpp File Reference
#include "Carmen.h"
Include dependency graph for DivCleaning.cpp:

Functions

Vector DivCleaning (const Cell &Cell0, const Cell &Cell1, const Cell &Cell2, int AxisNo)
 

Function Documentation

Vector DivCleaning ( const Cell Cell0,
const Cell Cell1,
const Cell Cell2,
int  AxisNo 
)
11  {
12 
13  Vector LeftAvg(QuantityNb);
14  Vector RightAvg(QuantityNb);
15  Vector Avg(QuantityNb);
16  Vector p8wave(QuantityNb);
17  real Bdiv=0;
18  real udotB=0;
19  real psiGrad=0;
20  real dx=0;
21 
22  LeftAvg = Cell1.average();
23  RightAvg = Cell2.average();
24  Avg = Cell0.average();
25 
26  dx = Cell0.size(AxisNo);
27  dx = 2*dx;
28  Bdiv = (RightAvg.value(AxisNo+6) - LeftAvg.value(AxisNo+6))/dx;
29  p8wave.setZero();
30 
31  if(DivClean==1){
32  udotB = Avg.value(2)*Avg.value(7) + Avg.value(3)*Avg.value(8) + Avg.value(4)*Avg.value(9);
33 
34  p8wave.setValue(2, -Bdiv*Avg.value(7));
35  p8wave.setValue(3, -Bdiv*Avg.value(8));
36  p8wave.setValue(4, -Bdiv*Avg.value(9));
37  p8wave.setValue(7, -Bdiv*Avg.value(2)/Avg.value(1));
38  p8wave.setValue(8, -Bdiv*Avg.value(3)/Avg.value(1));
39  p8wave.setValue(9, -Bdiv*Avg.value(4)/Avg.value(1));
40  p8wave.setValue(5, -Bdiv*udotB/Avg.value(1));
41 
42  return p8wave;
43 
44  }else if(DivClean==2){
45 
46  psiGrad = (RightAvg.value(6) - LeftAvg.value(6))/dx;
47 
48  p8wave.setValue(2, -Bdiv*Avg.value(7));
49  p8wave.setValue(3, -Bdiv*Avg.value(8));
50  p8wave.setValue(4, -Bdiv*Avg.value(9));
51  p8wave.setValue(5, -Avg.value(AxisNo+6)*psiGrad);
52  p8wave.setValue(6, Avg.value(6)*exp(-(cr*ch*TimeStep/SpaceStep)));
53 
54  return p8wave;
55  }else if(DivClean==3){
56  if(AxisNo==3)
57  p8wave.setValue(6, Avg.value(6)*exp(-(cr*ch*TimeStep/SpaceStep)));
58  return p8wave;
59  }else
60  return p8wave;
61 
62 
63 }
real ch
Definition: Parameters.cpp:140
int QuantityNb
Definition: Parameters.cpp:171
Standard class for every vector in Carmen.
Definition: Vector.h:29
real SpaceStep
Definition: Parameters.cpp:156
real cr
Definition: Parameters.cpp:194
int DivClean
Definition: Parameters.cpp:70
real size(const int AxisNo) const
Returns the cell size in the direction AxisNo.
Definition: Cell.h:1095
real average(const int QuantityNo) const
Returns the component no. QuantityNo of the cell-average value.
Definition: Cell.h:1128
real TimeStep
Definition: Parameters.cpp:40
#define real
Definition: PreProcessor.h:31