Skip to content

Reply To: Pressure in openLB

#7646
Yuji
Participant

When I use setSlipBoundary, I got an error;
terminate called after throwing an instance of ‘std::runtime_error’
what(): Legacy post processors not supported on GPU_CUDA
Aborted

How should I do to resolve it?

I set this setSlipBoundary into marerial number 6 and 7 in “void prepareLattice” function. This instraction written by me is bellow. When I do the comment out at setSlipBoundary, the error does not appear.

void prepareLattice( SuperLattice<T,DESCRIPTOR>& sLattice,
UnitConverter<T,DESCRIPTOR> const& converter,
STLreader<T>& stlReader,
SuperGeometry<T,3>& superGeometry )
{
OstreamManager clout( std::cout,”prepareLattice” );
clout << “Prepare Lattice …” << std::endl;

const T omega = converter.getLatticeRelaxationFrequency();
clout << “omega” << omega << ” ” << std::endl;

// Material=1 –>bulk dynamics
auto bulkIndicator = superGeometry.getMaterialIndicator({1});
sLattice.defineDynamics<BGKdynamics>(bulkIndicator);

// Material=2 –>bounce back
setBounceBackBoundary(sLattice, superGeometry, 2);

// Setting of the boundary conditions

//if local boundary conditions are chosen
//setLocalVelocityBoundary(sLattice, omega, superGeometry, 3);
//setLocalPressureBoundary(sLattice, omega, superGeometry, 4);

//if interpolated boundary conditions are chosen
setInterpolatedVelocityBoundary(sLattice, omega, superGeometry, 3);
setInterpolatedPressureBoundary(sLattice, omega, superGeometry, 4);

// Material=5 –>bouzidi / bounce back
#ifdef BOUZIDI
setBouzidiBoundary<T,DESCRIPTOR>(sLattice, superGeometry, 5, stlReader);
#else
setBounceBackBoundary(sLattice, superGeometry, 5);
#endif
// Material = 6, 7
setSlipBoundary<T,DESCRIPTOR>(sLattice, superGeometry, 6);
setSlipBoundary<T,DESCRIPTOR>(sLattice, superGeometry, 7);

// Initial conditions
AnalyticalConst3D<T,T> rhoF( 1 );
Vector<T,3> velocityV;
velocityV[0] = converter.getCharLatticeVelocity();
clout<< “velocityV=” << velocityV[0] << ” ” << velocityV[1] << ” ” << velocityV[2] << ” ” <<std::endl;
AnalyticalConst3D<T,T> uF(velocityV);

// Initialize all values of distribution functions to their local equilibrium
sLattice.defineRhoU( bulkIndicator, rhoF, uF );
// sLattice.defineRhoU( superGeometry, 6, rhoF, uF );
sLattice.iniEquilibrium( bulkIndicator, rhoF, uF );

sLattice.setParameter<descriptors::OMEGA>(omega);

// Make the lattice ready for simulation
sLattice.initialize();

clout << “Prepare Lattice … OK” << std::endl;
}

Best