#include <stdlib.h>
#include <time.h>
{
auto resultGeometry((df1 | df2) & df3);
auto data(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
return true;
}
{
auto data(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
return true;
}
{
auto data(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
vector<asl::SPDistanceFunction> cylinders;
for (int i = 0; i < size[0] / (2 * r + spacing); ++i)
{
for (int j = 0; j < size[1] / (2 * r + spacing); ++j)
{
resultGeometry = resultGeometry | cylinders.back();
}
}
return true;
}
{
auto data(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
vector<asl::SPDistanceFunction> cylinders;
srand (time(NULL));
for (unsigned int i = 0; i < size[0] / (2 * r + spacing); ++i)
{
for (unsigned int j = 0; j < size[1] / (2 * r + spacing); ++j)
{
for (unsigned int d = 0; d < orientation.getSize(); ++d)
orientation[d] = rand() % size[d];
cylinders.push_back(
generateDFCylinderInf(r, orientation,
asl::makeAVec(i * (2. * r + spacing) + r + spacing / 2., j * (2. * r + spacing) + r + spacing / 2., (
FlT) (rand() % size[2]))));
resultGeometry = resultGeometry | cylinders.back();
}
}
return true;
}
{
auto data(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
return true;
}
{
auto data(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
return true;
}
{
auto data(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
return true;
}
{
auto data(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
return true;
}
{
vector<asl::AVec<>> pillar1{
asl::makeAVec(wPillar*.5, dPillar*.5,0.),
vector<asl::AVec<>> pillar2{
asl::makeAVec(dPillar*.5, wPillar*.5,0.),
vector<asl::AVec<>> pillarC{
asl::makeAVec(center[0]+rDisk-dPillar*.5, center[1], 0.),
vector<vector<asl::AVec<>>> pillarsPoints(4);
for(unsigned int i(0); i<4; ++i)
pillarsPoints[i].resize(4);
for(unsigned int i(0); i<4; ++i)
{
pillarsPoints[0][i] = pillar2[i] + pillarC[0];
pillarsPoints[1][i] = pillar2[i] + pillarC[1];
pillarsPoints[2][i] = pillar1[i] + pillarC[2];
pillarsPoints[3][i] = pillar1[i] + pillarC[3];
}
auto mBath(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
auto mPlatform(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
auto mCrystal(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
asl::makeAVec(center[0], center[1], - .5*hAxis - hDisk*.25 +
dx*size[2])));
auto dfPillars((dfPillar1 | dfPillar2 | dfPillar3 | dfPillar4) &
center+
makeAVec(-aCrystal, aCrystal,0.),
center+
makeAVec(-aCrystal, -aCrystal,0.),
center+
makeAVec( aCrystal, -aCrystal,0.)}) &
auto cCrPyrBase(
makeAVec(center[0],center[1],hDisk+hCrystalBase-.01));
cCrPyrBase+
makeAVec(-aCrystal, aCrystal,0.),
cCrPyrBase+
makeAVec(-aCrystal, -aCrystal,0.),
cCrPyrBase+
makeAVec( aCrystal, -aCrystal,0.)},
cCrPyrBase+
makeAVec(0.,0.,hCrystalPyramid)));
writer.addScalars("Bath", *mBath);
writer.addScalars("Platform", *mPlatform);
writer.addScalars("Crystal", *mCrystal);
writer.write();
return true;
}
{
auto data(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
return true;
}
{
return 0;
}