int main(int argc, char **argv) { MPI_Comm comm; DM dm; AppCtx options; PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL,help);if (ierr) return ierr; comm = PETSC_COMM_WORLD; ierr = ProcessOptions(comm, &options);CHKERRQ(ierr); ierr = CreateMesh(comm, &options, &dm);CHKERRQ(ierr); switch (options.test) { case 0: ierr = test0(dm, &options);CHKERRQ(ierr); break; case 1: ierr = test1(dm, &options);CHKERRQ(ierr); break; case 2: ierr = test2(dm, &options);CHKERRQ(ierr); break; case 3: ierr = test3(dm, &options);CHKERRQ(ierr); break; case 4: ierr = test4(dm, &options);CHKERRQ(ierr); break; case 5: ierr = test5(dm, &options);CHKERRQ(ierr); break; case 6: ierr = test6(dm, &options);CHKERRQ(ierr); break; case 7: ierr = test7(dm, &options);CHKERRQ(ierr); break; case 8: ierr = test8(dm, &options);CHKERRQ(ierr); break; default: SETERRQ1(comm, PETSC_ERR_ARG_OUTOFRANGE, "No such test: %D", options.test); } ierr = DMDestroy(&dm);CHKERRQ(ierr); ierr = PetscFinalize(); return ierr; }
int main(int argc, char **argv) { DM dm; /* Problem specification */ SNES snes; /* Nonlinear solver */ Vec u; /* Solutions */ AppCtx user; /* User-defined work context */ PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL,help);if (ierr) return ierr; ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr); /* Primal system */ ierr = SNESCreate(PETSC_COMM_WORLD, &snes);CHKERRQ(ierr); ierr = CreateMesh(PETSC_COMM_WORLD, &user, &dm);CHKERRQ(ierr); ierr = SNESSetDM(snes, dm);CHKERRQ(ierr); ierr = SetupFE(dm, user.dim, user.simplex, "displacement", SetupPrimalProblem, &user);CHKERRQ(ierr); ierr = DMCreateGlobalVector(dm, &u);CHKERRQ(ierr); ierr = VecSet(u, 0.0);CHKERRQ(ierr); ierr = PetscObjectSetName((PetscObject) u, "displacement");CHKERRQ(ierr); ierr = DMPlexSetSNESLocalFEM(dm, &user, &user, &user);CHKERRQ(ierr); ierr = SNESSetFromOptions(snes);CHKERRQ(ierr); ierr = DMSNESCheckFromOptions(snes, u, NULL, NULL);CHKERRQ(ierr); ierr = SNESSolve(snes, NULL, u);CHKERRQ(ierr); ierr = SNESGetSolution(snes, &u);CHKERRQ(ierr); ierr = VecViewFromOptions(u, NULL, "-displacement_view");CHKERRQ(ierr); /* Cleanup */ ierr = VecDestroy(&u);CHKERRQ(ierr); ierr = SNESDestroy(&snes);CHKERRQ(ierr); ierr = DMDestroy(&dm);CHKERRQ(ierr); ierr = PetscFinalize(); return ierr; }
int main(int argc, char *argv[]) { SetProgramName(*argv); ProcessOptions(argc, argv); Process(); return(0); }
int main(int argc, char **argv) { SNES snes; /* nonlinear solver */ Mat A,J; /* Jacobian,preconditioner matrix */ Vec u,r; /* solution, residual vectors */ AppCtx user; /* user-defined work context */ PetscReal error = 0.0; /* L_2 error in the solution */ PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL, help);CHKERRQ(ierr); ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr); ierr = SNESCreate(PETSC_COMM_WORLD, &snes);CHKERRQ(ierr); ierr = CreateMesh(PETSC_COMM_WORLD, &user, &user.dm);CHKERRQ(ierr); ierr = SNESSetDM(snes, user.dm);CHKERRQ(ierr); ierr = SetupExactSolution(&user);CHKERRQ(ierr); ierr = SetupQuadrature(&user);CHKERRQ(ierr); ierr = SetupSection(user.dm, &user);CHKERRQ(ierr); ierr = DMCreateGlobalVector(user.dm, &u);CHKERRQ(ierr); ierr = VecDuplicate(u, &r);CHKERRQ(ierr); ierr = DMSetMatType(user.dm,MATAIJ);CHKERRQ(ierr); ierr = DMCreateMatrix(user.dm, &J);CHKERRQ(ierr); A = J; ierr = DMSNESSetFunctionLocal(user.dm, (PetscErrorCode (*)(DM,Vec,Vec,void*))FormFunctionLocal,&user);CHKERRQ(ierr); ierr = DMSNESSetJacobianLocal(user.dm, (PetscErrorCode (*)(DM,Vec,Mat,Mat,void*))FormJacobianLocal,&user);CHKERRQ(ierr); ierr = SNESSetFromOptions(snes);CHKERRQ(ierr); { PetscReal res; /* Check discretization error */ ierr = PetscPrintf(PETSC_COMM_WORLD, "Initial guess\n");CHKERRQ(ierr); ierr = VecView(u, PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr); /* ierr = ComputeError(u, &error, &user);CHKERRQ(ierr); */ ierr = PetscPrintf(PETSC_COMM_WORLD, "L_2 Error: %g\n", error);CHKERRQ(ierr); /* Check residual */ ierr = SNESComputeFunction(snes,u,r);CHKERRQ(ierr); ierr = PetscPrintf(PETSC_COMM_WORLD, "Initial Residual\n");CHKERRQ(ierr); ierr = VecChop(r, 1.0e-10);CHKERRQ(ierr); ierr = VecView(r, PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr); ierr = VecNorm(r, NORM_2, &res);CHKERRQ(ierr); ierr = PetscPrintf(PETSC_COMM_WORLD, "L_2 Residual: %g\n", res);CHKERRQ(ierr); } ierr = VecDestroy(&u);CHKERRQ(ierr); ierr = VecDestroy(&r);CHKERRQ(ierr); ierr = SNESDestroy(&snes);CHKERRQ(ierr); ierr = DMDestroy(&user.dm);CHKERRQ(ierr); ierr = PetscFinalize(); return 0; }
int main(int argc, char **argv) { DM dm, subdm, auxdm; Vec la; AppCtx user; PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL,help);if (ierr) return ierr; ierr = ProcessOptions(&user);CHKERRQ(ierr); ierr = CreateMesh(PETSC_COMM_WORLD, &user, &dm);CHKERRQ(ierr); ierr = SetupDiscretization(dm, user.dim, user.cellSimplex, &user);CHKERRQ(ierr); /* Volumetric Mesh Projection */ ierr = TestFunctionProjection(dm, NULL, NULL, NULL, "Volumetric Primary", &user);CHKERRQ(ierr); ierr = TestFieldProjection(dm, NULL, NULL, NULL, "Volumetric Primary", &user);CHKERRQ(ierr); if (user.auxfield) { /* Volumetric Mesh Projection with Volumetric Data */ ierr = CreateAuxiliaryData(dm, &auxdm, &la, &user);CHKERRQ(ierr); ierr = TestFunctionProjection(dm, auxdm, NULL, la, "Volumetric Primary and Volumetric Auxiliary", &user);CHKERRQ(ierr); ierr = TestFieldProjection(dm, auxdm, NULL, la, "Volumetric Primary and Volumetric Auxiliary", &user);CHKERRQ(ierr); ierr = VecDestroy(&la);CHKERRQ(ierr); /* Update of Volumetric Auxiliary Data with primary Volumetric Data */ ierr = DMGetLocalVector(dm, &la);CHKERRQ(ierr); ierr = VecSet(la, 1.0);CHKERRQ(ierr); ierr = TestFieldProjection(auxdm, dm, NULL, la, "Volumetric Auxiliary Update with Volumetric Primary", &user);CHKERRQ(ierr); ierr = DMRestoreLocalVector(dm, &la);CHKERRQ(ierr); ierr = DMDestroy(&auxdm);CHKERRQ(ierr); } if (user.submesh) { DMLabel bdLabel; /* Boundary Mesh Projection */ ierr = CreateBoundaryMesh(dm, &bdLabel, &subdm, &user);CHKERRQ(ierr); ierr = TestFunctionProjection(subdm, NULL, NULL, NULL, "Boundary Primary", &user);CHKERRQ(ierr); ierr = TestFieldProjection(subdm, NULL, NULL, NULL, "Boundary Primary", &user);CHKERRQ(ierr); if (user.auxfield) { /* Boundary Mesh Projection with Boundary Data */ ierr = CreateAuxiliaryData(subdm, &auxdm, &la, &user);CHKERRQ(ierr); ierr = TestFunctionProjection(subdm, auxdm, NULL, la, "Boundary Primary and Boundary Auxiliary", &user);CHKERRQ(ierr); ierr = TestFieldProjection(subdm, auxdm, NULL, la, "Boundary Primary and Boundary Auxiliary", &user);CHKERRQ(ierr); ierr = VecDestroy(&la);CHKERRQ(ierr); ierr = DMDestroy(&auxdm);CHKERRQ(ierr); /* Volumetric Mesh Projection with Boundary Data */ ierr = CreateAuxiliaryData(subdm, &auxdm, &la, &user);CHKERRQ(ierr); ierr = TestFunctionProjection(dm, auxdm, bdLabel, la, "Volumetric Primary and Boundary Auxiliary", &user);CHKERRQ(ierr); ierr = TestFieldProjection(dm, auxdm, bdLabel, la, "Volumetric Primary and Boundary Auxiliary", &user);CHKERRQ(ierr); ierr = VecDestroy(&la);CHKERRQ(ierr); ierr = DMDestroy(&auxdm);CHKERRQ(ierr); } ierr = DMLabelDestroy(&bdLabel);CHKERRQ(ierr); ierr = DMDestroy(&subdm);CHKERRQ(ierr); } ierr = DMDestroy(&dm);CHKERRQ(ierr); ierr = PetscFinalize(); return ierr; }
int main(int argc, char **argv) { AppCtx user; /* user-defined work context */ PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, PETSC_NULL, help);CHKERRQ(ierr); ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr); ierr = CreateMesh(PETSC_COMM_WORLD, &user, &user.dm);CHKERRQ(ierr); ierr = DMDestroy(&user.dm);CHKERRQ(ierr); ierr = PetscFinalize(); return 0; }
int main(int argc, char **argv) { SNES snes; /* nonlinear solver */ DM dm; /* problem definition */ Vec u, r; /* solution and residual */ AppCtx user; /* user-defined work context */ PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL,help);if (ierr) return ierr; ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr); ierr = PetscBagCreate(PETSC_COMM_WORLD, sizeof(Parameter), &user.bag);CHKERRQ(ierr); ierr = SetupParameters(&user);CHKERRQ(ierr); ierr = SNESCreate(PETSC_COMM_WORLD, &snes);CHKERRQ(ierr); ierr = CreateMesh(PETSC_COMM_WORLD, &user, &dm);CHKERRQ(ierr); ierr = SNESSetDM(snes, dm);CHKERRQ(ierr); ierr = DMSetApplicationContext(dm, &user);CHKERRQ(ierr); /* Setup problem */ ierr = PetscMalloc(2 * sizeof(void (*)(const PetscReal[], PetscScalar *, void *)), &user.exactFuncs);CHKERRQ(ierr); ierr = SetupDiscretization(dm, &user);CHKERRQ(ierr); ierr = DMPlexCreateClosureIndex(dm, NULL);CHKERRQ(ierr); ierr = DMCreateGlobalVector(dm, &u);CHKERRQ(ierr); ierr = VecDuplicate(u, &r);CHKERRQ(ierr); ierr = DMPlexSetSNESLocalFEM(dm,&user,&user,&user);CHKERRQ(ierr); ierr = SNESSetFromOptions(snes);CHKERRQ(ierr); { Parameter *param; void *ctxs[2]; ierr = PetscBagGetData(user.bag, (void **) ¶m);CHKERRQ(ierr); ctxs[0] = ctxs[1] = param; ierr = DMProjectFunction(dm, 0.0, user.exactFuncs, ctxs, INSERT_ALL_VALUES, u);CHKERRQ(ierr); ierr = PetscObjectSetName((PetscObject) u, "Exact Solution");CHKERRQ(ierr); ierr = VecViewFromOptions(u, NULL, "-exact_vec_view");CHKERRQ(ierr); } ierr = DMSNESCheckFromOptions(snes, u, NULL, NULL);CHKERRQ(ierr); ierr = VecSet(u, 0.0);CHKERRQ(ierr); ierr = PetscObjectSetName((PetscObject) u, "Solution");CHKERRQ(ierr); ierr = SNESSolve(snes, NULL, u);CHKERRQ(ierr); ierr = VecViewFromOptions(u, NULL, "-sol_vec_view");CHKERRQ(ierr); ierr = VecDestroy(&u);CHKERRQ(ierr); ierr = VecDestroy(&r);CHKERRQ(ierr); ierr = PetscFree(user.exactFuncs);CHKERRQ(ierr); ierr = DMDestroy(&dm);CHKERRQ(ierr); ierr = SNESDestroy(&snes);CHKERRQ(ierr); ierr = PetscBagDestroy(&user.bag);CHKERRQ(ierr); ierr = PetscFinalize(); return ierr; }
HRESULT CLR_RT_ParseOptions::ExtractOptionsFromFile( LPCWSTR szFileName ) { TINYCLR_HEADER(); CLR_RT_StringVector vec; TINYCLR_CHECK_HRESULT(CLR_RT_FileStore::ExtractTokensFromFile( szFileName, vec )); TINYCLR_CHECK_HRESULT(ProcessOptions( vec )); TINYCLR_NOCLEANUP(); }
int main(int argc, char **argv) { DM dm; SNES snes; Vec u, r; AppCtx user; PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL, help);CHKERRQ(ierr); ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr); ierr = SNESCreate(PETSC_COMM_WORLD, &snes);CHKERRQ(ierr); ierr = CreateMesh(PETSC_COMM_WORLD, &user, &dm);CHKERRQ(ierr); ierr = SNESSetDM(snes, dm);CHKERRQ(ierr); ierr = PetscMalloc(3 * sizeof(void (*)()), &user.exactFuncs);CHKERRQ(ierr); ierr = SetupDiscretization(dm, &user);CHKERRQ(ierr); ierr = DMCreateGlobalVector(dm, &u);CHKERRQ(ierr); ierr = PetscObjectSetName((PetscObject) u, "solution");CHKERRQ(ierr); ierr = VecDuplicate(u, &r);CHKERRQ(ierr); ierr = DMPlexSetSNESLocalFEM(dm,&user,&user,&user);CHKERRQ(ierr); ierr = SNESSetFromOptions(snes);CHKERRQ(ierr); ierr = DMProjectFunction(dm, user.exactFuncs, NULL, INSERT_ALL_VALUES, u);CHKERRQ(ierr); ierr = DMSNESCheckFromOptions(snes, u, user.exactFuncs, NULL);CHKERRQ(ierr); if (user.runType == RUN_FULL) { PetscErrorCode (*initialGuess[3])(PetscInt dim, const PetscReal x[], PetscInt Nf, PetscScalar u[], void *ctx); PetscReal error; initialGuess[0] = zero; initialGuess[1] = zero; initialGuess[2] = zero; ierr = DMProjectFunction(dm, initialGuess, NULL, INSERT_VALUES, u);CHKERRQ(ierr); ierr = VecViewFromOptions(u, NULL, "-initial_vec_view");CHKERRQ(ierr); ierr = DMComputeL2Diff(dm, user.exactFuncs, NULL, u, &error);CHKERRQ(ierr); if (error < 1.0e-11) {ierr = PetscPrintf(PETSC_COMM_WORLD, "Initial L_2 Error: < 1.0e-11\n");CHKERRQ(ierr);} else {ierr = PetscPrintf(PETSC_COMM_WORLD, "Initial L_2 Error: %g\n", error);CHKERRQ(ierr);} ierr = SNESSolve(snes, NULL, u);CHKERRQ(ierr); ierr = DMComputeL2Diff(dm, user.exactFuncs, NULL, u, &error);CHKERRQ(ierr); if (error < 1.0e-11) {ierr = PetscPrintf(PETSC_COMM_WORLD, "Final L_2 Error: < 1.0e-11\n");CHKERRQ(ierr);} else {ierr = PetscPrintf(PETSC_COMM_WORLD, "Final L_2 Error: %g\n", error);CHKERRQ(ierr);} } ierr = VecViewFromOptions(u, NULL, "-sol_vec_view");CHKERRQ(ierr); ierr = VecDestroy(&u);CHKERRQ(ierr); ierr = VecDestroy(&r);CHKERRQ(ierr); ierr = SNESDestroy(&snes);CHKERRQ(ierr); ierr = DMDestroy(&dm);CHKERRQ(ierr); ierr = PetscFree(user.exactFuncs);CHKERRQ(ierr); ierr = PetscFinalize(); return 0; }
int main(int argc, char **argv) { AppCtx user; /* user-defined work context */ PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL, help);if (ierr) return ierr; ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr); ierr = CreateMesh(PETSC_COMM_WORLD, &user, &user.dm);CHKERRQ(ierr); if (user.testShape) {ierr = DMPlexCheckCellShape(user.dm, PETSC_TRUE);CHKERRQ(ierr);} ierr = DMDestroy(&user.dm);CHKERRQ(ierr); ierr = PetscFinalize(); return ierr; }
HRESULT CLR_RT_ParseOptions::ReprocessOptions() { TINYCLR_HEADER(); if(CommandLineArgs.size() == 0) { TINYCLR_SET_AND_LEAVE(CLR_E_NULL_REFERENCE); } TINYCLR_SET_AND_LEAVE(ProcessOptions( CommandLineArgs )); TINYCLR_NOCLEANUP(); }
int main(int argc, char **argv) { MPI_Comm comm; DM dm; AppCtx ctx; PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL, help);if (ierr) return ierr; comm = PETSC_COMM_WORLD; ierr = ProcessOptions(comm, &ctx);CHKERRQ(ierr); ierr = CreateMesh(comm, &ctx, &dm);CHKERRQ(ierr); ierr = TestLocalDofOrder(dm, &ctx);CHKERRQ(ierr); ierr = DMDestroy(&dm);CHKERRQ(ierr); ierr = PetscFinalize(); return ierr; }
int main(int argc, char **argv) { DM dm; AppCtx user; PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL, help);CHKERRQ(ierr); ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr); ierr = CreateMesh(PETSC_COMM_WORLD, &user, &dm);CHKERRQ(ierr); ierr = DMPlexCheckSymmetry(dm);CHKERRQ(ierr); ierr = DMPlexCheckSkeleton(dm, PETSC_TRUE, 0);CHKERRQ(ierr); if (!user.uninterpolate) {ierr = DMPlexCheckFaces(dm, PETSC_TRUE, 0);CHKERRQ(ierr);} ierr = DMDestroy(&dm);CHKERRQ(ierr); ierr = PetscFinalize(); return 0; }
int main(int argc, char **argv) { DMLabel label; AppCtx user; /* user-defined work context */ PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL,help);if (ierr) return ierr; ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr); ierr = DMLabelCreate(PETSC_COMM_SELF, "Test Label", &label);CHKERRQ(ierr); ierr = TestSetup(label, &user);CHKERRQ(ierr); ierr = TestLookup(label, &user);CHKERRQ(ierr); ierr = TestClear(label,&user);CHKERRQ(ierr); ierr = DMLabelDestroy(&label);CHKERRQ(ierr); ierr = PetscFinalize(); return ierr; }
/* * Entry point. */ int main(int argc, char** argv) { NulibState* pState = NULL; int32_t majorVersion, minorVersion, bugVersion; int result = 0; (void) NuGetVersion(&majorVersion, &minorVersion, &bugVersion, NULL, NULL); if (majorVersion != kNuVersionMajor || minorVersion < kNuVersionMinor) { fprintf(stderr, "ERROR: wrong version of NufxLib --" " wanted %d.%d.x, got %d.%d.%d.\n", kNuVersionMajor, kNuVersionMinor, majorVersion, minorVersion, bugVersion); goto bail; } #if 0 extern NuResult ErrorMessageHandler(NuArchive* pArchive, void* vErrorMessage); NuSetGlobalErrorMessageHandler(ErrorMessageHandler); #endif if (NState_Init(&pState) != kNuErrNone) { fprintf(stderr, "ERROR: unable to initialize globals\n"); exit(1); } gProgName = GetProgName(pState, argv[0]); if (ProcessOptions(pState, argc, argv) < 0) { result = 2; goto bail; } if (NState_ExtraInit(pState) != kNuErrNone) { fprintf(stderr, "ERROR: additional initialization failed\n"); exit(1); } result = DoWork(pState); if (result) printf("Failed.\n"); bail: NState_Free(pState); exit(result); }
int PostprocessEgretForests::Main(int argc, char *argv[]) { // Process command-line options. Options options; ProcessOptions(argc, argv, options); // Open input files. boost::scoped_ptr<SplitPointFileParser> splitPointParser; std::ifstream splitPointFileStream; if (!options.splitPointsFile.empty()) { OpenInputFileOrDie(options.splitPointsFile, splitPointFileStream); splitPointParser.reset(new SplitPointFileParser(splitPointFileStream)); } ProcessForest(std::cin, std::cout, splitPointParser.get(), options); return 0; }
int FilterRuleTable::Main(int argc, char *argv[]) { // Process command-line options. Options options; ProcessOptions(argc, argv, options); // Open input file. Moses::InputFileStream testStream(options.testSetFile); // Read the first test sentence and determine if it is a parse tree or a // string. std::string line; if (!std::getline(testStream, line)) { // TODO Error? return 0; } if (line.find_first_of('<') == std::string::npos) { // Test sentences are strings. std::vector<std::vector<std::string> > sentences; do { sentences.resize(sentences.size()+1); ReadTokens(line, sentences.back()); } while (std::getline(testStream, line)); StringBasedFilter filter(sentences); filter.Filter(std::cin, std::cout); } else { // Test sentences are XML parse trees. XmlTreeParser parser; std::vector<boost::shared_ptr<StringTree> > sentences; int lineNum = 1; do { if (line.size() == 0) { std::cerr << "skipping blank test sentence at line " << lineNum << std::endl; continue; } sentences.push_back(boost::shared_ptr<StringTree>(parser.Parse(line))); ++lineNum; } while (std::getline(testStream, line)); TreeBasedFilter filter(sentences); filter.Filter(std::cin, std::cout); } return 0; }
int main(int argc, char * argv[]) { Options options = ProcessOptions(argc,argv); auto str_path_in = options.path_in.string(); auto path_out=options.path_out; if (boost::filesystem::create_directory(path_out)) { std::cerr << "creating target directory\n"; } provenance = std::string(); provenance += "vocab collected on " + get_str_time(); provenance += "source corpus : " + str_path_in + "\n"; std::cerr<<"assigning ids\n"; vocab.read_from_dir(str_path_in); provenance = provenance + "words in corpus : "+ FormatHelper::ConvertToStr(vocab.cnt_words_processed)+"\n"; provenance = provenance + "unique words : "+ FormatHelper::ConvertToStr(vocab.cnt_words)+"\n"; vocab.reduce(options.min_frequency); provenance=provenance+"filtered with minimal frequency: "+FormatHelper::ConvertToStr(options.min_frequency)+"\n"; provenance = provenance + "unique words : "+ FormatHelper::ConvertToStr(vocab.cnt_words)+"\n"; std::cerr<<"creating list of frequencies\n"; vocab.freq_per_id.resize(vocab.cnt_words); vocab.lst_id2word.resize(vocab.cnt_words); std::fill (vocab.freq_per_id.begin(),vocab.freq_per_id.end(),0); std::cerr<<"populating frequencies\n"; vocab.populate_frequency(); vocab.reassign_ids(vocab.freq_per_id); vocab.populate_frequency(); vocab.populate_ids(); std::cerr<<"dumping ids and frequencies\n"; vocab.dump_ids((path_out / boost::filesystem::path("ids")).string()); vocab.dump_frequency((path_out / boost::filesystem::path("frequencies")).string()); write_value_to_file((path_out / boost::filesystem::path("cnt_unique_words")).string(),vocab.cnt_words); write_value_to_file((path_out / boost::filesystem::path("cnt_words")).string(),vocab.cnt_words_processed); write_vector_to_file((path_out / boost::filesystem::path("freq_per_id")).string(),vocab.freq_per_id); write_value_to_file((path_out / boost::filesystem::path("provenance.txt")).string(),provenance); return 0; }
int main(int argc, char **argv) { DM dm; AppCtx user; /* user-defined work context */ PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, PETSC_NULL, help);CHKERRQ(ierr); ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr); ierr = DMPatchCreateGrid(PETSC_COMM_WORLD, user.dim, user.patchSize, user.commSize, user.gridSize, &dm);CHKERRQ(ierr); ierr = PetscObjectSetName((PetscObject) dm, "Patch Mesh");CHKERRQ(ierr); ierr = DMSetFromOptions(dm);CHKERRQ(ierr); ierr = DMSetUp(dm);CHKERRQ(ierr); ierr = DMView(dm, PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr); ierr = DMPatchSolve(dm);CHKERRQ(ierr); ierr = DMDestroy(&dm);CHKERRQ(ierr); ierr = PetscFinalize(); return 0; }
int main(int argc, char **argv) { DM dm; AppCtx user; PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL, help);CHKERRQ(ierr); ierr = ProcessOptions(&user);CHKERRQ(ierr); ierr = PetscLogBegin();CHKERRQ(ierr); ierr = CreateMesh(PETSC_COMM_SELF, &user, &dm);CHKERRQ(ierr); ierr = TestCone(dm, &user);CHKERRQ(ierr); ierr = TestTransitiveClosure(dm, &user);CHKERRQ(ierr); ierr = TestVecClosure(dm, &user);CHKERRQ(ierr); ierr = DMDestroy(&dm);CHKERRQ(ierr); ierr = CleanupContext(&user);CHKERRQ(ierr); ierr = PetscFinalize(); return 0; }
int main(int argc, char **argv) { AppCtx user; /* user-defined work context */ Vec u; PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL, help);CHKERRQ(ierr); ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr); ierr = CreateMesh(PETSC_COMM_WORLD, &user, &user.dm);CHKERRQ(ierr); ierr = SetupElement(user.dm, &user);CHKERRQ(ierr); ierr = SetupSection(user.dm, &user);CHKERRQ(ierr); ierr = DMGetGlobalVector(user.dm, &u);CHKERRQ(ierr); ierr = CheckFunctions(user.dm, user.porder, u, &user);CHKERRQ(ierr); ierr = DMRestoreGlobalVector(user.dm, &u);CHKERRQ(ierr); ierr = PetscFEDestroy(&user.fe);CHKERRQ(ierr); ierr = DMDestroy(&user.dm);CHKERRQ(ierr); ierr = PetscFinalize(); return 0; }
void OBFunction::SetOptions(const std::string &options) { int lineCount = 0; std::vector<Option> voptions; std::string line; std::stringstream ss(options); while (std::getline(ss, line, '\n')) { lineCount++; std::istringstream iss(line); std::vector<std::string> tokens; copy(std::istream_iterator<string>(iss), std::istream_iterator<std::string>(), back_inserter<std::vector<std::string> >(tokens)); if (tokens.size() >= 1) { if (tokens.at(0)[0] == '#') continue; } if (tokens.size() < 3) { std::stringstream msg; msg << "line " << lineCount << ": All options should have at least 3 tokens (e.g. 'rvdw = 9.0', ...)" << endl; m_logfile->Write(msg.str()); continue; } if (tokens.at(1) != "=") { std::stringstream msg; msg << "line " << lineCount << ": No '=' character found. All options should be of the form 'name = value' (e.g. 'rvdw = 9.0', ...)" << endl; m_logfile->Write(msg.str()); continue; } voptions.push_back( Option(lineCount, tokens.at(0), tokens.at(2)) ); } ProcessOptions(voptions); m_options = options; }
int main(int argc, char *argv[]) { MPI_Comm comm; DM dm; PetscSF sf; AppCtx user; PetscErrorCode ierr; PetscFunctionBegin; ierr = PetscInitialize(&argc, &argv, (char*) 0, help); CHKERRQ(ierr); comm = PETSC_COMM_WORLD; ierr = ProcessOptions(comm, &user); CHKERRQ(ierr); ierr = CreateMesh(comm, &user, &dm); CHKERRQ(ierr); ierr = DMMeshConvertOverlapToSF(dm, &sf); CHKERRQ(ierr); { PetscSection section; PetscSF sectionSF; ierr = DMMeshGetCoordinateSection(dm, §ion); CHKERRQ(ierr); ierr = PetscSectionView(section, PETSC_VIEWER_STDOUT_SELF); CHKERRQ(ierr); ierr = PetscSFCreateSectionSF(sf, section, §ionSF); CHKERRQ(ierr); ierr = PetscSFDestroy(§ionSF); CHKERRQ(ierr); ierr = PetscSectionDestroy(§ion); CHKERRQ(ierr); } ierr = PetscSFDestroy(&sf); CHKERRQ(ierr); ierr = DMDestroy(&dm); CHKERRQ(ierr); ierr = PetscFinalize(); PetscFunctionReturn(0); }
int main(int argc, char *argv[]) { #if HAVE_SETBUF setbuf(stdin, NULL); #endif OpenLogFile("Amy.log"); InitMoves(); InitAll(); HashInit(); /* * Process rc file first, then command line options. This way command * line options can override rc file settings. */ ProcessRCFile(); ProcessOptions(argc, argv); ShowVersion(); AllocateHT(); InitEGTB(EGTBPath); RecogInit(); DoBookLearning(); Print(0, "\n"); strcpy(AutoSaveFileName, GetTmpFileName()); /* Ensure true random behavior. */ InitRandom(GetTime()); StateMachine(); return 0; }
int main(int argc, char *argv[]) { MPI_Comm comm; DM dm, parallelDM; PetscSF pointSF; AppCtx user; PetscErrorCode ierr; PetscFunctionBegin; ierr = PetscInitialize(&argc, &argv, (char *) 0, help);CHKERRQ(ierr); comm = PETSC_COMM_WORLD; ierr = ProcessOptions(comm, &user);CHKERRQ(ierr); ierr = CreateMesh(comm, &user, &dm);CHKERRQ(ierr); ierr = DistributeMesh(dm, &user, &pointSF, ¶llelDM);CHKERRQ(ierr); ierr = DistributeCoordinates(dm, pointSF, parallelDM);CHKERRQ(ierr); ierr = DMSetFromOptions(parallelDM);CHKERRQ(ierr); ierr = PetscSFDestroy(&pointSF);CHKERRQ(ierr); ierr = DMDestroy(¶llelDM);CHKERRQ(ierr); ierr = DMDestroy(&dm);CHKERRQ(ierr); ierr = PetscFinalize(); PetscFunctionReturn(0); }
int main(int argc, char **argv) { DM dm; AppCtx user; PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL,help);if (ierr) return ierr; ierr = ProcessOptions(&user);CHKERRQ(ierr); ierr = PetscLogDefaultBegin();CHKERRQ(ierr); ierr = CreateMesh(PETSC_COMM_SELF, &user, &dm);CHKERRQ(ierr); ierr = TestCone(dm, &user);CHKERRQ(ierr); ierr = TestTransitiveClosure(dm, &user);CHKERRQ(ierr); ierr = TestVecClosure(dm, PETSC_FALSE, PETSC_FALSE, &user);CHKERRQ(ierr); ierr = TestVecClosure(dm, PETSC_TRUE, PETSC_FALSE, &user);CHKERRQ(ierr); if (!user.cellSimplex && user.spectral) { ierr = TestVecClosure(dm, PETSC_FALSE, PETSC_TRUE, &user);CHKERRQ(ierr); ierr = TestVecClosure(dm, PETSC_TRUE, PETSC_TRUE, &user);CHKERRQ(ierr); } ierr = DMDestroy(&dm);CHKERRQ(ierr); ierr = CleanupContext(&user);CHKERRQ(ierr); ierr = PetscFinalize(); return ierr; }
int main(int argc, char **argv) { DM dm; Vec u; AppCtx ctx; PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL,help);if (ierr) return ierr; ierr = ProcessOptions(PETSC_COMM_WORLD, &ctx);CHKERRQ(ierr); ierr = DMPlexCreateSphereMesh(PETSC_COMM_WORLD, ctx.dim, ctx.simplex, &dm);CHKERRQ(ierr); ierr = PetscObjectSetName((PetscObject) dm, "Sphere");CHKERRQ(ierr); ierr = DMSetFromOptions(dm);CHKERRQ(ierr); ierr = ProjectToUnitSphere(dm);CHKERRQ(ierr); ierr = DMViewFromOptions(dm, NULL, "-dm_view");CHKERRQ(ierr); ierr = SetupSection(dm);CHKERRQ(ierr); ierr = DMGetGlobalVector(dm, &u);CHKERRQ(ierr); ierr = VecSet(u, 2);CHKERRQ(ierr); ierr = VecViewFromOptions(u, NULL, "-vec_view");CHKERRQ(ierr); ierr = DMRestoreGlobalVector(dm, &u);CHKERRQ(ierr); ierr = DMDestroy(&dm);CHKERRQ(ierr); ierr = PetscFinalize(); return ierr; }
int main(int argc, char **argv) { AppCtx ctx; DM dm; TS ts; Vec u, r; PetscReal t = 0.0; PetscReal L2error = 0.0; PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL, help); CHKERRQ(ierr); ierr = ProcessOptions(PETSC_COMM_WORLD, &ctx); CHKERRQ(ierr); ierr = CreateMesh(PETSC_COMM_WORLD, &dm, &ctx); CHKERRQ(ierr); ierr = DMSetApplicationContext(dm, &ctx); CHKERRQ(ierr); ierr = PetscMalloc1(1, &ctx.exactFuncs); CHKERRQ(ierr); ierr = SetupDiscretization(dm, &ctx); CHKERRQ(ierr); ierr = DMCreateGlobalVector(dm, &u); CHKERRQ(ierr); ierr = PetscObjectSetName((PetscObject) u, "temperature"); CHKERRQ(ierr); ierr = VecDuplicate(u, &r); CHKERRQ(ierr); ierr = TSCreate(PETSC_COMM_WORLD, &ts); CHKERRQ(ierr); ierr = TSSetDM(ts, dm); CHKERRQ(ierr); ierr = DMTSSetBoundaryLocal(dm, DMPlexTSComputeBoundary, &ctx); CHKERRQ(ierr); ierr = DMTSSetIFunctionLocal(dm, DMPlexTSComputeIFunctionFEM, &ctx); CHKERRQ(ierr); ierr = DMTSSetIJacobianLocal(dm, DMPlexTSComputeIJacobianFEM, &ctx); CHKERRQ(ierr); ierr = TSSetExactFinalTime(ts, TS_EXACTFINALTIME_STEPOVER); CHKERRQ(ierr); ierr = TSSetFromOptions(ts); CHKERRQ(ierr); ierr = DMProjectFunction(dm, t, ctx.exactFuncs, NULL, INSERT_ALL_VALUES, u); CHKERRQ(ierr); ierr = TSSolve(ts, u); CHKERRQ(ierr); ierr = TSGetTime(ts, &t); CHKERRQ(ierr); ierr = DMComputeL2Diff(dm, t, ctx.exactFuncs, NULL, u, &L2error); CHKERRQ(ierr); if (L2error < 1.0e-11) { ierr = PetscPrintf(PETSC_COMM_WORLD, "L_2 Error: < 1.0e-11\n"); CHKERRQ(ierr); } else { ierr = PetscPrintf(PETSC_COMM_WORLD, "L_2 Error: %g\n", L2error); CHKERRQ(ierr); } ierr = VecViewFromOptions(u, NULL, "-sol_vec_view"); CHKERRQ(ierr); ierr = VecDestroy(&u); CHKERRQ(ierr); ierr = VecDestroy(&r); CHKERRQ(ierr); ierr = TSDestroy(&ts); CHKERRQ(ierr); ierr = DMDestroy(&dm); CHKERRQ(ierr); ierr = PetscFree(ctx.exactFuncs); CHKERRQ(ierr); ierr = PetscFinalize(); return ierr; }
int main(int argc, char **argv) { SNES snes; /* nonlinear solver */ DM dm; /* problem definition */ Vec u,r; /* solution, residual vectors */ Mat A,J; /* Jacobian matrix */ MatNullSpace nullSpace; /* May be necessary for pressure */ AppCtx user; /* user-defined work context */ JacActionCtx userJ; /* context for Jacobian MF action */ PetscInt its; /* iterations for convergence */ PetscReal error = 0.0; /* L_2 error in the solution */ PetscInt numComponents = 0, f; PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL, help);CHKERRQ(ierr); ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr); ierr = SNESCreate(PETSC_COMM_WORLD, &snes);CHKERRQ(ierr); ierr = CreateMesh(PETSC_COMM_WORLD, &user, &dm);CHKERRQ(ierr); ierr = SNESSetDM(snes, dm);CHKERRQ(ierr); ierr = SetupElement(dm, &user);CHKERRQ(ierr); for (f = 0; f < NUM_FIELDS; ++f) { PetscInt numComp; ierr = PetscFEGetNumComponents(user.fe[f], &numComp);CHKERRQ(ierr); numComponents += numComp; } ierr = PetscMalloc(NUM_FIELDS * sizeof(void (*)(const PetscReal[], PetscScalar *)), &user.exactFuncs);CHKERRQ(ierr); user.fem.bcFuncs = (void (**)(const PetscReal[], PetscScalar *)) user.exactFuncs; ierr = SetupExactSolution(dm, &user);CHKERRQ(ierr); ierr = SetupSection(dm, &user);CHKERRQ(ierr); ierr = DMPlexCreateClosureIndex(dm, NULL);CHKERRQ(ierr); ierr = DMCreateGlobalVector(dm, &u);CHKERRQ(ierr); ierr = VecDuplicate(u, &r);CHKERRQ(ierr); ierr = DMSetMatType(dm,MATAIJ);CHKERRQ(ierr); ierr = DMCreateMatrix(dm, &J);CHKERRQ(ierr); if (user.jacobianMF) { PetscInt M, m, N, n; ierr = MatGetSize(J, &M, &N);CHKERRQ(ierr); ierr = MatGetLocalSize(J, &m, &n);CHKERRQ(ierr); ierr = MatCreate(PETSC_COMM_WORLD, &A);CHKERRQ(ierr); ierr = MatSetSizes(A, m, n, M, N);CHKERRQ(ierr); ierr = MatSetType(A, MATSHELL);CHKERRQ(ierr); ierr = MatSetUp(A);CHKERRQ(ierr); ierr = MatShellSetOperation(A, MATOP_MULT, (void (*)(void))FormJacobianAction);CHKERRQ(ierr); userJ.dm = dm; userJ.J = J; userJ.user = &user; ierr = DMCreateLocalVector(dm, &userJ.u);CHKERRQ(ierr); ierr = DMPlexProjectFunctionLocal(dm, user.fe, user.exactFuncs, INSERT_BC_VALUES, userJ.u);CHKERRQ(ierr); ierr = MatShellSetContext(A, &userJ);CHKERRQ(ierr); } else { A = J; } ierr = CreatePressureNullSpace(dm, &user, &nullSpace);CHKERRQ(ierr); ierr = MatSetNullSpace(J, nullSpace);CHKERRQ(ierr); if (A != J) { ierr = MatSetNullSpace(A, nullSpace);CHKERRQ(ierr); } ierr = DMSNESSetFunctionLocal(dm, (PetscErrorCode (*)(DM,Vec,Vec,void*))DMPlexComputeResidualFEM,&user);CHKERRQ(ierr); ierr = DMSNESSetJacobianLocal(dm, (PetscErrorCode (*)(DM,Vec,Mat,Mat,MatStructure*,void*))DMPlexComputeJacobianFEM,&user);CHKERRQ(ierr); ierr = SNESSetJacobian(snes, A, J, NULL, NULL);CHKERRQ(ierr); ierr = SNESSetFromOptions(snes);CHKERRQ(ierr); ierr = DMPlexProjectFunction(dm, user.fe, user.exactFuncs, INSERT_ALL_VALUES, u);CHKERRQ(ierr); if (user.showInitial) {ierr = DMVecViewLocal(dm, u, PETSC_VIEWER_STDOUT_SELF);CHKERRQ(ierr);} if (user.runType == RUN_FULL) { ierr = DMPlexProjectFunction(dm, user.fe, user.initialGuess, INSERT_VALUES, u);CHKERRQ(ierr); if (user.showInitial) {ierr = DMVecViewLocal(dm, u, PETSC_VIEWER_STDOUT_SELF);CHKERRQ(ierr);} if (user.debug) { ierr = PetscPrintf(PETSC_COMM_WORLD, "Initial guess\n");CHKERRQ(ierr); ierr = VecView(u, PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr); } ierr = SNESSolve(snes, NULL, u);CHKERRQ(ierr); ierr = SNESGetIterationNumber(snes, &its);CHKERRQ(ierr); ierr = PetscPrintf(PETSC_COMM_WORLD, "Number of SNES iterations = %D\n", its);CHKERRQ(ierr); ierr = DMPlexComputeL2Diff(dm, user.fe, user.exactFuncs, u, &error);CHKERRQ(ierr); ierr = PetscPrintf(PETSC_COMM_WORLD, "L_2 Error: %.3g\n", error);CHKERRQ(ierr); if (user.showSolution) { ierr = PetscPrintf(PETSC_COMM_WORLD, "Solution\n");CHKERRQ(ierr); ierr = VecChop(u, 3.0e-9);CHKERRQ(ierr); ierr = VecView(u, PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr); } } else { PetscReal res = 0.0; /* Check discretization error */ ierr = PetscPrintf(PETSC_COMM_WORLD, "Initial guess\n");CHKERRQ(ierr); ierr = VecView(u, PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr); ierr = DMPlexComputeL2Diff(dm, user.fe, user.exactFuncs, u, &error);CHKERRQ(ierr); if (error >= 1.0e-11) { ierr = PetscPrintf(PETSC_COMM_WORLD, "L_2 Error: %g\n", error);CHKERRQ(ierr); } else { ierr = PetscPrintf(PETSC_COMM_WORLD, "L_2 Error: < 1.0e-11\n", error);CHKERRQ(ierr); } /* Check residual */ ierr = SNESComputeFunction(snes, u, r);CHKERRQ(ierr); ierr = PetscPrintf(PETSC_COMM_WORLD, "Initial Residual\n");CHKERRQ(ierr); ierr = VecChop(r, 1.0e-10);CHKERRQ(ierr); ierr = VecView(r, PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr); ierr = VecNorm(r, NORM_2, &res);CHKERRQ(ierr); ierr = PetscPrintf(PETSC_COMM_WORLD, "L_2 Residual: %g\n", res);CHKERRQ(ierr); /* Check Jacobian */ { Vec b; MatStructure flag; PetscBool isNull; ierr = SNESComputeJacobian(snes, u, &A, &A, &flag);CHKERRQ(ierr); ierr = MatNullSpaceTest(nullSpace, J, &isNull);CHKERRQ(ierr); if (!isNull) SETERRQ(PETSC_COMM_WORLD, PETSC_ERR_PLIB, "The null space calculated for the system operator is invalid."); ierr = VecDuplicate(u, &b);CHKERRQ(ierr); ierr = VecSet(r, 0.0);CHKERRQ(ierr); ierr = SNESComputeFunction(snes, r, b);CHKERRQ(ierr); ierr = MatMult(A, u, r);CHKERRQ(ierr); ierr = VecAXPY(r, 1.0, b);CHKERRQ(ierr); ierr = VecDestroy(&b);CHKERRQ(ierr); ierr = PetscPrintf(PETSC_COMM_WORLD, "Au - b = Au + F(0)\n");CHKERRQ(ierr); ierr = VecChop(r, 1.0e-10);CHKERRQ(ierr); ierr = VecView(r, PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr); ierr = VecNorm(r, NORM_2, &res);CHKERRQ(ierr); ierr = PetscPrintf(PETSC_COMM_WORLD, "Linear L_2 Residual: %g\n", res);CHKERRQ(ierr); } } if (user.runType == RUN_FULL) { PetscViewer viewer; Vec uLocal; const char *name; ierr = PetscViewerCreate(PETSC_COMM_WORLD, &viewer);CHKERRQ(ierr); ierr = PetscViewerSetType(viewer, PETSCVIEWERVTK);CHKERRQ(ierr); ierr = PetscViewerSetFormat(viewer, PETSC_VIEWER_ASCII_VTK);CHKERRQ(ierr); ierr = PetscViewerFileSetName(viewer, "ex62_sol.vtk");CHKERRQ(ierr); ierr = DMGetLocalVector(dm, &uLocal);CHKERRQ(ierr); ierr = PetscObjectGetName((PetscObject) u, &name);CHKERRQ(ierr); ierr = PetscObjectSetName((PetscObject) uLocal, name);CHKERRQ(ierr); ierr = DMGlobalToLocalBegin(dm, u, INSERT_VALUES, uLocal);CHKERRQ(ierr); ierr = DMGlobalToLocalEnd(dm, u, INSERT_VALUES, uLocal);CHKERRQ(ierr); ierr = VecView(uLocal, viewer);CHKERRQ(ierr); ierr = DMRestoreLocalVector(dm, &uLocal);CHKERRQ(ierr); ierr = PetscViewerDestroy(&viewer);CHKERRQ(ierr); } ierr = PetscFree(user.exactFuncs);CHKERRQ(ierr); ierr = DestroyElement(&user);CHKERRQ(ierr); ierr = MatNullSpaceDestroy(&nullSpace);CHKERRQ(ierr); if (user.jacobianMF) { ierr = VecDestroy(&userJ.u);CHKERRQ(ierr); } if (A != J) { ierr = MatDestroy(&A);CHKERRQ(ierr); } ierr = MatDestroy(&J);CHKERRQ(ierr); ierr = VecDestroy(&u);CHKERRQ(ierr); ierr = VecDestroy(&r);CHKERRQ(ierr); ierr = SNESDestroy(&snes);CHKERRQ(ierr); ierr = DMDestroy(&dm);CHKERRQ(ierr); ierr = PetscFinalize(); return 0; }
bool BundlerApp::OnInit() { printf("[OnInit] Running program %s\n", argv[0]); char *imageList; bool load_file = false; if (argc >= 2) { printf("Loading images from file '%s'\n", argv[1]); imageList = argv[1]; load_file = true; } else { PrintUsage(); exit(0); } printf("[BundlerApp::OnInit] Processing options...\n"); ProcessOptions(argc - 1, argv + 1); if (m_use_intrinsics && m_estimate_distortion) { printf("Error: --intrinsics and --estimate_distortion " "are incompatible\n"); exit(1); } if (m_fixed_focal_length && m_estimate_distortion) { printf("Error: --fixed_focal_length and --estimate_distortion " "are currently incompatible\n"); exit(1); } printf("[BundlerApp::OnInit] Loading frame...\n"); printf("[BundlerApp::OnInit] Loading images...\n"); fflush(stdout); if (load_file) { FILE *f = fopen(imageList, "r"); if (f == NULL) { printf("[BundlerApp::OnInit] Error opening file %s for reading\n", imageList); exit(1); } LoadImageNamesFromFile(f); int num_images = GetNumImages(); if (m_fisheye) { double fCx = 0.0, fCy = 0.0, fRad = 0.0, fAngle = 0.0, fFocal = 0.0; ReadFisheyeParameters(m_fisheye_params, fCx, fCy, fRad, fAngle, fFocal); for (int i = 0; i < num_images; i++) { if (m_image_data[i].m_fisheye) { m_image_data[i].m_fCx = fCx; m_image_data[i].m_fCy = fCy; m_image_data[i].m_fRad = fRad; m_image_data[i].m_fAngle = fAngle; m_image_data[i].m_fFocal = fFocal; } } } fclose(f); } if (m_rerun_bundle) { // ReadCameraConstraints(); assert(m_bundle_provided); printf("[BundlerApp::OnInit] Reading bundle file...\n"); ReadBundleFile(m_bundle_file); if (m_bundle_version < 0.3) { printf("[BundlerApp::OnInit] Reflecting scene...\n"); FixReflectionBug(); } ReRunSFM(); exit(0); } if (m_use_constraints) { ReadCameraConstraints(); } if (m_ignore_file != NULL) { printf("[BundlerApp::OnInit] Reading ignore file...\n"); ReadIgnoreFile(); } if (m_ignore_file != NULL) { printf("[BundlerApp::OnInit] Reading ignore file...\n"); ReadIgnoreFile(); } /* Do bundle adjustment (or read from file if provided) */ // ParseCommand("UndistortAll", NULL); if (m_bundle_provided) { printf("[BundlerApp::OnInit] Reading bundle file...\n"); ReadBundleFile(m_bundle_file); if (m_bundle_version < 0.3) { printf("[BundlerApp::OnInit] Reflecting scene...\n"); FixReflectionBug(); } if (m_compress_list) { OutputCompressed(); return 0; } if (m_reposition_scene) { double center[3], R[9], scale; RepositionScene(center, R, scale); OutputCompressed("reposition"); return 0; } if (m_prune_bad_points) { SetupImagePoints(3); RemoveBadImages(24); PruneBadPoints(); OutputCompressed("pruned"); return 0; } if (m_scale_focal != 1.0) { ScaleFocalLengths(m_scale_focal); return 0; } if (m_scale_focal_file != NULL) { ScaleFocalLengths(m_scale_focal_file); return 0; } if (m_rotate_cameras_file != NULL) { RotateCameras(m_rotate_cameras_file); } if (m_track_file != NULL) { CreateTracksFromPoints(); WriteTracks(m_track_file); } if (m_zero_distortion_params) { ZeroDistortionParams(); OutputCompressed("nord"); return 0; } if (m_output_relposes) { double center[3], R[9], scale; RepositionScene(center, R, scale); RepositionScene(center, R, scale); // OutputRelativePoses2D(m_output_relposes_file); OutputRelativePoses3D(m_output_relposes_file); return 0; } if (m_compute_covariance) { ComputeCameraCovariance(); return 0; } #define MIN_POINT_VIEWS 3 // 0 // 2 if (!m_run_bundle) { SetMatchesFromPoints(MIN_POINT_VIEWS); // WriteMatchTableDrew(".final"); printf("[BundlerApp::OnInit] " "Setting up image points and lines...\n"); SetupImagePoints(/*2*/ MIN_POINT_VIEWS); RemoveBadImages(6); if (m_point_constraint_file != NULL) { printf("[BundlerApp::OnInit] Reading point constraints...\n"); m_use_point_constraints = true; ReadPointConstraints(); } printf("[BundlerApp::OnInit] Scaling world...\n"); printf("[BundlerApp::OnInit] Computing camera orientations...\n"); ComputeImageRotations(); double center[3], R[9], scale; RepositionScene(center, R, scale); if (m_rerun_bundle) { ReRunSFM(); } } if (m_add_image_file != NULL) { printf("[BundlerApp::OnInit] Adding additional images...\n"); FILE *f = fopen(m_add_image_file, "r"); if (f == NULL) { printf("[BundlerApp::OnInit] Error opening file %s for " "reading\n", m_add_image_file); } else { BundleImagesFromFile(f); /* Write the output */ OutputCompressed("added"); if (m_bundle_version < 0.3) FixReflectionBug(); // RunSFMWithNewImages(4); fclose(f); } } } if (m_run_bundle) { if (!m_fast_bundle) BundleAdjust(); else BundleAdjustFast(); if (m_bundle_version < 0.3) FixReflectionBug(); exit(0); } return true; }