Пример #1
0
// cool down neuron activity
// reset to zero if reaches QUIET state
void NEURON::Cool()
{
    PotentialReduce();
    FlagReset(FLAG_FIRING);
    switch (_state) {
    case QUIET:   break;
    case AWAKE:   _state = QUIET; _potent=0; break;
    case MELLOW:  _state = AWAKE;  break;
    case HYPER:   _state = MELLOW; break;
    default:      break;
    }
}
Пример #2
0
void ResetSafariZoneFlag(void)
{
    FlagReset(SYS_SAFARI_MODE);
}
Пример #3
0
bool8 ScrCmd_clearflag(struct ScriptContext *ctx)
{
    FlagReset(ScriptReadHalfword(ctx));
    return FALSE;
}
Пример #4
0
/* ******************************************************************** */
int Integrate (Data *d, Riemann_Solver *Solver, Time_Step *Dts, Grid *grid)
/*!
 * Advance equations by a single time-step.

 * \param  d      pointer to PLUTO Data structure;
 * \param  Solver pointer to a Riemann solver function;
 * \param  Dts    pointer to time Step structure;
 * \param  grid   pointer to grid structure.
 * 
 * \return An integer giving success / failure (development).
 * 
 ********************************************************************** */
{
  int idim, err = 0;

  g_maxMach = 0.0;
  g_maxRiemannIter = 0;
  g_maxRootIter    = 0;

/* -------------------------------------------------------
    Initialize max propagation speed in Dedner's approach
   ------------------------------------------------------- */

  #ifdef GLM_MHD  /* -- initialize glm_ch -- */
   GLM_Init (d, Dts, grid);   
   GLM_Source (d->Vc, 0.5*g_dt, grid);
  #endif

  /* ---------------------------------------------
        perform Strang Splitting on directions 
        (if necessary) and sources 
     --------------------------------------------- */

  FlagReset (d);

  #ifdef FARGO
   FARGO_ComputeVelocity(d, grid);
  #endif
  if ((g_stepNumber%2) == 0){
    g_operatorStep = HYPERBOLIC_STEP;
    #if DIMENSIONAL_SPLITTING == YES
     for (g_dir = 0; g_dir < DIMENSIONS; g_dir++){
       if (UpdateSolution (d, Solver, Dts, grid) != 0) return (1);
     }
    #else
     if (UpdateSolution (d, Solver, Dts, grid) != 0) return(1);
    #endif
    g_operatorStep = PARABOLIC_STEP;
    SplitSource (d, g_dt, Dts, grid);
  }else{
    g_operatorStep = PARABOLIC_STEP;
    SplitSource (d, g_dt, Dts, grid);
    g_operatorStep = HYPERBOLIC_STEP;
    #if DIMENSIONAL_SPLITTING == YES
     for (g_dir = DIMENSIONS - 1; g_dir >= 0; g_dir--){
       if (UpdateSolution(d, Solver, Dts, grid) != 0) return (1);
     }
    #else
     if (UpdateSolution (d, Solver, Dts, grid) != 0) return(1);
    #endif
  }       

  #ifdef GLM_MHD  /* -- GLM source for dt/2 -- */
   GLM_Source (d->Vc, 0.5*g_dt, grid);
  #endif

  return (0); /* -- ok, step achieved -- */
}