Ejemplo n.º 1
0
PointsKalmanFilterPredictor::PointsKalmanFilterPredictor()
    : first_(true)
{
    A_.block(0, 0, 3, 3) = Eigen::Matrix3d::Identity();
    A_.block(3, 3, 3, 3) = Eigen::Matrix3d::Identity();

    B_.block(0, 0, 3, 3) = Eigen::Matrix3d::Identity();

    C_.block(0, 0, 3, 3) = Eigen::Matrix3d::Identity();
    C_.block(0, 3, 3, 3) = Eigen::Matrix3d::Zero();

    setDeltaT(1. / 15);
}
Ejemplo n.º 2
0
ciMsaFluidSolver& ciMsaFluidSolver::setup(int NX, int NY)
{
	setDeltaT();
	setFadeSpeed();
	setSolverIterations();
	enableVorticityConfinement(false);
	setWrap( false, false );
	
	//maa
	viscocity =  FLUID_DEFAULT_VISC;
	colorDiffusion = FLUID_DEFAULT_COLOR_DIFFUSION;
	
	return setSize( NX, NY);
}
Ejemplo n.º 3
0
/**
 * Extracts time bin width from workspace parameter
 *
 * The method uses the difference between first and second x-value of the
 * first spectrum as time bin width. If the workspace does not contain proper
 * data (0 spectra or less than 2 x-values), the method throws an
 * std::invalid_argument-exception Otherwise it calls setDeltaT.
 *
 * @param matrixWorkspace :: MatrixWorkspace with at least one spectrum with
 *at
 *                           least two x-values.
 */
void PoldiFitPeaks2D::setDeltaTFromWorkspace(
    const MatrixWorkspace_sptr &matrixWorkspace) {
  if (matrixWorkspace->getNumberHistograms() < 1) {
    throw std::invalid_argument("MatrixWorkspace does not contain any data.");
  }

  auto &xData = matrixWorkspace->x(0);

  if (xData.size() < 2) {
    throw std::invalid_argument(
        "Cannot process MatrixWorkspace with less than 2 x-values.");
  }

  // difference between first and second x-value is assumed to be the bin
  // width.
  setDeltaT(matrixWorkspace->x(0)[1] - matrixWorkspace->x(0)[0]);
}
Ejemplo n.º 4
0
ofxMSAFluidSolver& ofxMSAFluidSolver::setup(int NX, int NY)
{
	ofLog(OF_LOG_VERBOSE, "ofxMSAFluidSolver::init( " + ofToString(NX) + ", " + ofToString(NY) + " )");
	
	doDensity = true;
	doProject = true;
	
	setDeltaT();
	setFadeSpeed();
	setSolverIterations();
	enableVorticityConfinement(false);
	setWrap( false, false );
	
	//maa
	viscocity =  FLUID_DEFAULT_VISC;
	colorDiffusion = FLUID_DEFAULT_COLOR_DIFFUSION;
	
	return setSize( NX, NY);
}
Ejemplo n.º 5
0
//---------------------------------------------------------------------------
int main(int argc, char *argv[])
{
  argList args = setRootCase( argc, argv );
    
  TimeHolder runTime=createTime( Time::controlDictName, args );
    
  fvMeshHolder mesh = createMesh( runTime );
  
  basicPsiThermoHolder pThermo; volScalarFieldHolder rho; volScalarFieldHolder p;
  volScalarFieldHolder h; volScalarFieldHolder psi;
  volVectorFieldHolder U; surfaceScalarFieldHolder phi;
  compressible::turbulenceModelHolder turbulence; 
  volScalarFieldHolder DpDt;
  
  result_createFields result = createFields( runTime, mesh, pThermo, rho, p, h, psi, U,  phi, turbulence, DpDt );
  dimensionedScalar rhoMax = result.m_rhoMax;
  dimensionedScalar rhoMin = result.m_rhoMin;

  MRFZonesHolder mrfZones;
  porousZonesHolder pZones;
  Switch pressureImplicitPorosity;
  
  createZones( mesh, U, mrfZones, pZones, pressureImplicitPorosity );

  scalar cumulativeContErr = initContinuityErrs();
  
  pimpleControlHolder pimple(mesh);

  Info<< "\nStarting time loop\n" << endl;

  while (runTime->run())
  {
    bool adjustTimeStep; scalar maxCo; scalar maxDeltaT;
    readTimeControls( runTime, adjustTimeStep, maxCo, maxDeltaT );

    scalar coNum, meanCoNum;
    compressibleCourantNo( runTime, mesh, phi, rho, coNum, meanCoNum );

    setDeltaT( runTime, adjustTimeStep, maxCo, coNum, maxDeltaT );
    (*runTime)++;

    Info<< "Time = " << runTime->timeName() << nl << endl;

    rhoEqn( rho, phi );

    // --- Pressure-velocity PIMPLE corrector loop
    for (pimple->start(); pimple->loop(); (*pimple)++)
    {
      if (pimple->nOuterCorr() != 1)
      {
        p->storePrevIter();
        rho->storePrevIter();
      }

      fvVectorMatrixHolder UEqn = fun_Ueqn( pimple, rho, p, U, phi, turbulence, mrfZones, pZones );
      
      fun_hEqn( pThermo, rho, p, h, phi, turbulence, DpDt );
      
      // --- PISO loop
      for (int corr=0; corr<pimple->nCorr(); corr++)
      {
        fun_pEqn( mesh, runTime, pimple, pThermo, rho, p, h, psi, U, phi, turbulence, UEqn,
                  mrfZones, DpDt, cumulativeContErr, corr, rhoMax, rhoMin );
      }

      if (pimple->turbCorr())
      {
        turbulence->correct();
      } 
    }

    runTime->write();

    Info<< "ExecutionTime = " << runTime->elapsedCpuTime() << " s"
        << "  ClockTime = " << runTime->elapsedClockTime() << " s"
        << nl << endl;
  }

  Info<< "End\n" << endl;

  return 0;
}