예제 #1
0
  //--------------------------------------------------------
  //  initialize
  //    sets up all the necessary data
  //--------------------------------------------------------
  void ATC_CouplingEnergy::initialize()
  {
    // Base class initalizations
    ATC_Coupling::initialize();

    // reset integration field mask
    intrinsicMask_.reset(NUM_FIELDS,NUM_FLUX);
    intrinsicMask_ = false;
    for (int i = 0; i < NUM_FLUX; i++)
      intrinsicMask_(TEMPERATURE,i) = fieldMask_(TEMPERATURE,i);
  }
예제 #2
0
  void ATC_TransferThermal::initialize()
  {
    // Base class initalizations
    ATC_Transfer::initialize();
    
    if (!timeFilterManager_.filter_dynamics()) {
      DENS_VEC atomicKineticEnergy(nLocal_);
      compute_atomic_kinetic_energy(atomicKineticEnergy, lammpsInterface_->vatom());
      project_volumetric_quantity(atomicKineticEnergy,fieldNdFiltered_[TEMPERATURE],TEMPERATURE);
      fieldNdFiltered_[TEMPERATURE] *= 2.;
    }
   
    thermostat_.initialize();
    extrinsicModelManager_.initialize();

    if (!initialized_) {
      // initialize sources based on initial FE temperature
      double dt = lammpsInterface_->dt();
      prescribedDataMgr_->set_sources(simTime_+.5*dt,sources_);
      extrinsicModelManager_.set_sources(fields_,extrinsicSources_);
      thermostat_.compute_boundary_flux(fields_);
      compute_atomic_sources(fieldMask_,fields_,atomicSources_);
    }

    if (timeFilterManager_.need_reset()) {
      init_filter();
      timeFilterManager_.initialize();
    }

    // reset integration field mask
    temperatureMask_.reset(NUM_FIELDS,NUM_FLUX);
    temperatureMask_ = false;
    for (int i = 0; i < NUM_FLUX; i++)
      temperatureMask_(TEMPERATURE,i) = fieldMask_(TEMPERATURE,i);
    initialized_ = true;
    

    if (pmfcOn_) {
      oldFieldTemp_.reset(nNodes_,1);
    }

    // read in field data if necessary
    if (useRestart_) {
      OUTPUT_LIST data;
      read_restart_data(restartFileName_,data);
      useRestart_ = false;
    }
  }