testanisosurfobjective.cpp

Go to the documentation of this file.
00001 #include <iostream>
00002 #include "AnisoSurfaceWaveObjective.h"
00003 #include "MultiAnisoSurfaceWaveObjective.h"
00004 #include "AnisoSurfaceWaveModel.h"
00005 #include "ParkSurfaceWaveData.h"
00006 #include <string>
00007 #include "Util.h"
00008 #include <fstream>
00009 using namespace std;
00010 int main()
00011   {
00012     string datafilename, modelfilename;
00013     datafilename = AskFilename("Name of Datafile: ");
00014     modelfilename = AskFilename("Name of Modelfile:");
00015 
00016     ParkSurfaceWaveData Data;
00017     Data.ReadFile(datafilename);
00018     AnisoSurfaceWaveModel Model;
00019     Model.ReadModel(modelfilename);
00020     AnisoSurfaceWaveObjective SeisObjective(Data,0.0);
00021 
00022     const unsigned int nlayers = Model.GetVs().size();
00023     const unsigned int nparams = nlayers * 6;
00024     ttranscribed member(nparams);
00025     for (unsigned i = 0; i < nlayers; ++i)
00026       {
00027         member(i) = Model.GetThicknesses().at(i);
00028         member(i+nlayers) = Model.GetVs().at(i);
00029         member(i+2*nlayers) = Model.GetPhi().at(i);
00030         member(i+3*nlayers) = 0.0;
00031         member(i+4*nlayers) = 1.0;
00032         member(i+5*nlayers) = Model.GetB().at(i);
00033       }
00034     cout << "Individual Misfit: " << SeisObjective.CalcPerformance(member) << endl;
00035     
00036     MultiAnisoSurfaceWaveObjective MultiObjective;
00037     MultiObjective.AddMeasurement(Data,0.0);
00038     cout << "Individual Misfit: " << MultiObjective.CalcPerformance(member) << endl;
00039     
00040     std::ofstream inputdatafile("inputdata.out");
00041     copy(Data.GetCVel().back().begin(), Data.GetCVel().back().end(), std::ostream_iterator<double>(inputdatafile,"\n"));
00042     std::ofstream synthdatafile("synthdata.out");
00043     copy(SeisObjective.GetSynthetic().GetCVel().back().begin(),SeisObjective.GetSynthetic().GetCVel().back().end(),std::ostream_iterator<double>(synthdatafile,"\n"));
00044   }

Generated on Mon Sep 15 12:54:34 2008 for GPLIB++ by  doxygen 1.5.5