fill missing material storage in cylindrical multigrids
This commit is contained in:
parent
67d1307fdf
commit
10537d75ab
@ -147,6 +147,36 @@ void Operator_CylinderMultiGrid::CalcStartStopLines(unsigned int &numThreads, ve
|
||||
}
|
||||
|
||||
|
||||
void Operator_CylinderMultiGrid::FillMissingDataStorage()
|
||||
{
|
||||
unsigned int pos[3];
|
||||
|
||||
double EffMat[4];
|
||||
|
||||
for (int ny=0; ny<3; ++ny)
|
||||
{
|
||||
for (pos[0]=0; pos[0]<m_Split_Pos-1; ++pos[0])
|
||||
{
|
||||
for (pos[1]=0; pos[1]<numLines[1]; ++pos[1])
|
||||
{
|
||||
for (pos[2]=0; pos[2]<numLines[2]; ++pos[2])
|
||||
{
|
||||
Calc_EffMatPos(ny,pos,EffMat);
|
||||
|
||||
if (m_epsR)
|
||||
m_epsR[ny][pos[0]][pos[1]][pos[2]] = EffMat[0];
|
||||
if (m_kappa)
|
||||
m_kappa[ny][pos[0]][pos[1]][pos[2]] = EffMat[1];
|
||||
if (m_mueR)
|
||||
m_mueR[ny][pos[0]][pos[1]][pos[2]] = EffMat[2];
|
||||
if (m_sigma)
|
||||
m_sigma[ny][pos[0]][pos[1]][pos[2]] = EffMat[3];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int Operator_CylinderMultiGrid::CalcECOperator( DebugFlags debugFlags )
|
||||
{
|
||||
int retCode=0;
|
||||
@ -165,9 +195,11 @@ int Operator_CylinderMultiGrid::CalcECOperator( DebugFlags debugFlags )
|
||||
dT = opt_dT;
|
||||
m_InnerOp->SetTimestep(dT);
|
||||
m_InnerOp->CalcECOperator();
|
||||
return Operator_Cylinder::CalcECOperator( debugFlags );
|
||||
retCode = Operator_Cylinder::CalcECOperator( debugFlags );
|
||||
}
|
||||
|
||||
//the data storage will only be filled up to m_Split_Pos-1, fill the remaining area here...
|
||||
FillMissingDataStorage();
|
||||
return retCode;
|
||||
}
|
||||
|
||||
|
@ -59,6 +59,9 @@ protected:
|
||||
void Delete();
|
||||
virtual void Reset();
|
||||
|
||||
//! The material data storage in the sub-grid area's will not be filled by the base-operator. Check and do this here!
|
||||
void FillMissingDataStorage();
|
||||
|
||||
double m_Split_Rad;
|
||||
vector<double> m_Split_Radii;
|
||||
unsigned int m_Split_Pos;
|
||||
|
Loading…
Reference in New Issue
Block a user