//////////////////////////////////////////////////////////////////////////// // DoShellSetup() //////////////////////////////////////////////////////////////////////////// void clWeibullClimateQuadratGrowth::DoShellSetup( xercesc::DOMDocument * p_oDoc ) { try { clTreePopulation * p_oPop = ( clTreePopulation * ) mp_oSimManager->GetPopulationObject( "treepopulation" ); FormatQuery( p_oPop ); ReadParameterFile( p_oDoc, p_oPop ); ValidateData( p_oPop ); SetupGrid( p_oPop ); } catch ( modelErr & err ) { throw( err ); } catch ( modelMsg & msg ) { throw( msg ); } //non-fatal error catch ( ... ) { modelErr stcErr; stcErr.iErrorCode = UNKNOWN; strcpy( stcErr.cFunction, "clWeibullClimateQuadratGrowth::DoShellSetup" ); throw( stcErr ); } }
int main(int argc, char **argv){ fUtils = new Utils(); fRad = new Radiation(); const char* parameterfile = argv[1]; if(ReadParameterFile(parameterfile)) return 0; double d = pc_to_cm*parameters[0]; double n = parameters[1]; double b = parameters[2]; double t = parameters[3]; double e = TeV_to_erg*1.e-12*parameters[4]; vector< vector <double> > electronvector,protonvector; fUtils->ReadIn(strings[0],electronvector); fUtils->ReadIn(strings[1],protonvector); /* set radiation object stuff */ fRad->SetDistance(d); fRad->SetBField(b); fRad->SetAmbientDensity(n); fRad->AddThermalTargetPhotons(2.7,0.25*TeV_to_erg*1.e-12);//CMB is hard-coded! fRad->AddThermalTargetPhotons(t,e); fRad->SetElectrons(electronvector); fRad->SetProtons(protonvector); fRad->CalculateDifferentialPhotonSpectrum(300,1.e-20,1.e3); string outtag = strings[2]; fUtils->WriteOut(fRad->GetProtonVector(),outtag+"_ProtonSpectrum.dat"); fUtils->WriteOut(fRad->GetElectronVector(),outtag+"_ElectronSpectrum.dat"); fUtils->WriteOut(fRad->GetTotalSED(),outtag+"_TotalSpectrum.dat"); fUtils->WriteOut(fRad->GetICSED(),outtag+"_ICSpectrum.dat"); fUtils->WriteOut(fRad->GetBremsstrahlungSED(),outtag+"_BremsSpectrum.dat"); fUtils->WriteOut(fRad->GetSynchrotronSED(),outtag+"_SynchSpectrum.dat"); fUtils->WriteOut(fRad->GetPPSED(),outtag+"_PPSpectrum.dat"); fUtils->WriteOut(fRad->GetTotalTargetPhotonVector(),outtag+"_TargetPhotons.dat"); return 0; }
Writer_ReadParameters(char *filename, char *section) { if (Instname[0]) sprintf(Name, "%s.%s", Instname, MODULENAME); else strcpy(Name, MODULENAME); printf("%s: processing parameter file %s:%s\n", Name, filename, section); ReadParameterFile(filename); return (1); }
int main(int argc, char **argv){ if (argc!=2) { std::cout<<">> You have to specify a parameter file ( $ bin/TutorialLevel1 <parameterfile> )."<<std::endl; std::cout<<">> Look at docu/tutorial/TutorialLevel1Params.dat for an example!"<<std::endl; return 1; } fUtils = new Utils(); fRad = new Radiation(); string parameterfile = argv[1]; if(ReadParameterFile(parameterfile)) return 0; double d = pc_to_cm*parameters[0]; double n = parameters[1]; double b = parameters[2]; double t = parameters[3]; double e = TeV_to_erg*1.e-12*parameters[4]; vector< vector <double> > electronvector,protonvector; fUtils->ReadIn(strings[0],electronvector); fUtils->ReadIn(strings[1],protonvector); /* set radiation object stuff */ fRad->SetDistance(d); fRad->SetBField(b); fRad->SetAmbientDensity(n); fRad->AddThermalTargetPhotons(2.7,0.25*TeV_to_erg*1.e-12);//CMB is hard-coded! fRad->AddThermalTargetPhotons(t,e); fRad->SetElectrons(electronvector); fRad->SetProtons(protonvector); fRad->CalculateDifferentialPhotonSpectrum(300,1.e-20,1.e3); string outtag = strings[2]; fUtils->WriteOut(fRad->GetProtonVector(),outtag+"_ProtonSpectrum.dat"); fUtils->WriteOut(fRad->GetElectronVector(),outtag+"_ElectronSpectrum.dat"); fUtils->WriteOut(fRad->GetTotalSED(),outtag+"_TotalSpectrum.dat"); fUtils->WriteOut(fRad->GetICSED(),outtag+"_ICSpectrum.dat"); fUtils->WriteOut(fRad->GetBremsstrahlungSED(),outtag+"_BremsSpectrum.dat"); fUtils->WriteOut(fRad->GetSynchrotronSED(),outtag+"_SynchSpectrum.dat"); fUtils->WriteOut(fRad->GetPPSED(),outtag+"_PPSpectrum.dat"); fUtils->WriteOut(fRad->GetTotalTargetPhotonVector(),outtag+"_TargetPhotons.dat"); return 0; }
//////////////////////////////////////////////////////////////////////////// // DoShellSetup() //////////////////////////////////////////////////////////////////////////// void clLaggedPostHarvestGrowth::DoShellSetup( xercesc::DOMDocument * p_oDoc ) { try { clTreePopulation *p_oPop = ( clTreePopulation * ) mp_oSimManager->GetPopulationObject( "treepopulation" ); m_iNumberYearsPerTimestep = mp_oSimManager->GetNumberOfYearsPerTimestep(); AssembleUniqueTypes(); ReadParameterFile( p_oDoc ); ValidateData(); GetTreeMemberCodes(); SetupTimeSinceHarvestGrid(); //Get the expected growth values at the start in case there's harvesting in the first timestep PreGrowthCalcs(p_oPop); } catch ( modelErr & err ) { throw( err ); } catch ( modelMsg & msg ) { throw( msg ); } //non-fatal error catch ( ... ) { modelErr stcErr; stcErr.iErrorCode = UNKNOWN; stcErr.sFunction = "clLaggedPostHarvestGrowth::DoShellSetup" ; throw( stcErr ); } }