コード例 #1
0
ファイル: ParamPolicy_4.hpp プロジェクト: Hkey1/boom
 void ParamPolicy_4<P1, P2, P3, P4>::set_t(){
   t_ = ParamVec(4);
   t_[0] = prm1_;
   t_[1] = prm2_;
   t_[2] = prm3_;
   t_[3] = prm4_;
 }
コード例 #2
0
ファイル: MuvisFeat.C プロジェクト: aalto-cbir/PicSOM
 int MuvisFeat::MuvisAFexHandler::API_Init() {
   soundfile* afile = parent->audiofile_ptr;
   double *args = ParamVec();
   int f_dur = 100; // frame in milliseconds, fixme: should be cmdline parameter
   int p = (*fex_init)(args, afile->getSampleRate(), afile->getNChannels(), f_dur);
   delete args;
   return p;
 }
コード例 #3
0
ファイル: ntl_world.cpp プロジェクト: rexbron/blender-ocio
int ntlWorld::addDomain(elbeemSimulationSettings *settings)
{
	// create domain obj
	SimulationObject *sim = new SimulationObject();
	char simname[100];
	snprintf(simname,100,"domain%04d",globalDomainCounter);
	globalDomainCounter++;
	sim->setName(string(simname));
	mpGlob->getSims()->push_back( sim );

	// important - add to both, only render scene objects are free'd 
	mpGlob->getRenderScene()->addGeoClass( sim );
	mpGlob->getSimScene()->addGeoClass( sim );
	sim->setGeoStart(ntlVec3Gfx(settings->geoStart[0],settings->geoStart[1],settings->geoStart[2]));
	sim->setGeoEnd(ntlVec3Gfx(
			settings->geoStart[0]+settings->geoSize[0],
			settings->geoStart[1]+settings->geoSize[1],
			settings->geoStart[2]+settings->geoSize[2] ));
	// further init in postGeoConstrInit/initializeLbmSimulation of SimulationObject
	sim->copyElbeemSettings(settings);

	Parametrizer *param = sim->getParametrizer();
	param->setSize( settings->resolutionxyz );
	param->setDomainSize( settings->realsize );
	param->setAniStart( settings->animStart );
	param->setNormalizedGStar( settings->gstar );

	// init domain channels
	vector<ParamFloat> valf; 
	vector<ParamVec> valv; 
	vector<double> time;

#define INIT_CHANNEL_FLOAT(channel,size) \
	valf.clear(); time.clear(); elbeemSimplifyChannelFloat(channel,&size); \
	for(int i=0; i<size; i++) { valf.push_back( channel[2*i+0] ); time.push_back( channel[2*i+1] ); } 
#define INIT_CHANNEL_VEC(channel,size) \
	valv.clear(); time.clear(); elbeemSimplifyChannelVec3(channel,&size); \
	for(int i=0; i<size; i++) { valv.push_back( ParamVec(channel[4*i+0],channel[4*i+1],channel[4*i+2]) ); time.push_back( channel[4*i+3] ); } 

	param->setViscosity( settings->viscosity );
	if((settings->channelViscosity)&&(settings->channelSizeViscosity>0)) {
		INIT_CHANNEL_FLOAT(settings->channelViscosity, settings->channelSizeViscosity);
		param->initViscosityChannel(valf,time); }

	param->setGravity( ParamVec(settings->gravity[0], settings->gravity[1], settings->gravity[2]) );
	if((settings->channelGravity)&&(settings->channelSizeGravity>0)) {
		INIT_CHANNEL_VEC(settings->channelGravity, settings->channelSizeGravity);
		param->initGravityChannel(valv,time); }

	param->setAniFrameTimeChannel( settings->aniFrameTime );
	if((settings->channelFrameTime)&&(settings->channelSizeFrameTime>0)) {
		INIT_CHANNEL_FLOAT(settings->channelFrameTime, settings->channelSizeFrameTime);
		param->initAniFrameTimeChannel(valf,time); }

#undef INIT_CHANNEL_FLOAT
#undef INIT_CHANNEL_VEC
	
	// might be set by previous domain
	if(mpGlob->getAniFrames() < settings->noOfFrames)	mpGlob->setAniFrames( settings->noOfFrames );
	// set additionally to SimulationObject->mOutFilename
	mpGlob->setOutFilename( settings->outputPath );

	return 0;
}
コード例 #4
0
	DB.Page("R/D*");
	for (int i = 0; i < 31; i++)
	{
		char buff[20];
		sprintf(buff,"RDS%d",i);
		DB.Double(buff,        "", &mo_RDStar[i]	, MF_RESULT );
	}

	DB.Page("Scale");
	DB.Double("FACTA","", &mo_FACTA , MF_RESULT );
	DB.Double("FACTB","", &mo_FACTB , MF_RESULT );
	DB.Double("FACTC","", &mo_FACTC , MF_RESULT );
	DB.Double("FACTD","", &mo_FACTD , MF_RESULT );
	DB.Double("FACTE<Xm","", &mo_FACTEsizeltXm , MF_RESULT );
	DB.Double("FACTE>Xm","", &mo_FACTEsizegeXm , MF_RESULT );
	DB.Double("Xm","", &mo_Xm , MF_RESULT );

    DB.ObjectEnd();

	}

//====================================================================================

void CMill_Ball::EvalProducts(MBaseMethod &M,
							  MStream &Feed , MStream &Product ,
		                      bool bInit )
	
{ 

	// Get info on Size Distribution
    MIPSD & l_PSD=*Feed.FindIF<MIPSD>();
    if (IsNothing(l_PSD))
      {
      int xx=0;
      return; //Why do we get here!!!
      }
    long    l_SizeCount      = l_PSD.getSizeCount();
    long    l_PSDVectorCount = l_PSD.getPSDVectorCount();


      if ( bInit && !IsNothing(l_PSD))
	    {
	      bInit = false;

			// Copy the Sieve Data Sizing Info
            SysCADSystemHelper::SysCADSizeDataToSystem(l_PSD, MatInfo);

			// Copy Material Information from database
			// For now we just set up n components
			// The MineralInfo data will come from a database
			MatInfo->SetNumberOfMinerals( l_PSD.PSDVectorCount );
			SysCADSystemHelper::PopulateMaterialInfo(M,MatInfo);

			// Initialize Ball Mill
			m_Params[0] = mi_NParrallelMills;
			m_Params[1] = mi_DiameterSim;
	        m_Params[2] = mi_LengthSim;
	        m_Params[3] = mi_FracCriticalSpeedSim;
	        m_Params[4] = mi_FracLoadSim;
	        m_Params[5] = mi_WorkIndexSim;
	        m_Params[6] = mi_BallTopSizeSim;
	        m_Params[7] = mi_DiameterDerived;
	        m_Params[8] = mi_LengthDerived;
	        m_Params[9] = mi_FracCriticalSpeedDerived;
	        m_Params[10] = mi_FracLoadDerived;
	        m_Params[11] = mi_WorkIndexDerived;
	        m_Params[12] = mi_BallTopSizeDerived;
	        m_Params[13] = mi_K;
			m_Params[14] = mi_NumSplineKnots;
			for ( int i = 0 ; i < 31 ; i++ )
				m_Params[15+i] = mi_KnotSize[i];
			for ( int i = 0 ; i < 31 ; i++ )
				m_Params[46+i] = mi_KnotLnRDStar[i];
			for ( int i = 0 ; i < 31 ; i++ )
				m_Params[77+i] = mi_A[i];

			RioTintoTS::VectorView ParamVec(m_Params,108,1);
			Mill.Initialize(MatInfo,ParamVec);

			// Create the Feed Stream. Use SetConfig after initialisation
			// if we need to change anything. We need to initialise here
			// because we get the size information from the Feed stream
			FeedStream = RioTintoTS::FlowStream1::Create( MatInfo );
      }

      if (!IsNothing(l_PSD))
	  {
        // Copy the input size data to the system feed stream solids
        SysCADSystemHelper::SysCADSolidsToSystem(Feed,FeedStream);
        SysCADSystemHelper::SysCADLiquidToSystem(Feed,FeedStream);