MCPcopy Create free account
hub / github.com/IBAMR/IBAMR / main

Function main

ibtk/examples/VCViscousSolver/example.cpp:61–483  ·  view source on GitHub ↗

* For each run, the input filename must be given on the command line. In all * * cases, the command line is: * * * * executable * *

Source from the content-addressed store, hash-verified

59 * *
60 *******************************************************************************/
61int
62main(int argc, char* argv[])
63{
64 // Initialize IBAMR and libraries. Deinitialization is handled by this object as well.
65 IBTKInit ibtk_init(argc, argv, MPI_COMM_WORLD);
66
67 { // cleanup dynamically allocated objects prior to shutdown
68
69 // Parse command line options, set some standard options from the input
70 // file, and enable file logging.
71 Pointer<AppInitializer> app_initializer = new AppInitializer(argc, argv, "sc_poisson.log");
72 Pointer<Database> input_db = app_initializer->getInputDatabase();
73
74 // Create major algorithm and data objects that comprise the
75 // application. These objects are configured from the input database.
76 Pointer<CartesianGridGeometry<NDIM>> grid_geometry = new CartesianGridGeometry<NDIM>(
77 "CartesianGeometry", app_initializer->getComponentDatabase("CartesianGeometry"));
78 Pointer<PatchHierarchy<NDIM>> patch_hierarchy = new PatchHierarchy<NDIM>("PatchHierarchy", grid_geometry);
79 Pointer<StandardTagAndInitialize<NDIM>> error_detector = new StandardTagAndInitialize<NDIM>(
80 "StandardTagAndInitialize", nullptr, app_initializer->getComponentDatabase("StandardTagAndInitialize"));
81 Pointer<BergerRigoutsos<NDIM>> box_generator = new BergerRigoutsos<NDIM>();
82 Pointer<LoadBalancer<NDIM>> load_balancer =
83 new LoadBalancer<NDIM>("LoadBalancer", app_initializer->getComponentDatabase("LoadBalancer"));
84 Pointer<GriddingAlgorithm<NDIM>> gridding_algorithm =
85 new GriddingAlgorithm<NDIM>("GriddingAlgorithm",
86 app_initializer->getComponentDatabase("GriddingAlgorithm"),
87 error_detector,
88 box_generator,
89 load_balancer);
90
91 // Create variables and register them with the variable database.
92 VariableDatabase<NDIM>* var_db = VariableDatabase<NDIM>::getDatabase();
93 Pointer<VariableContext> ctx = var_db->getContext("context");
94
95 Pointer<SideVariable<NDIM, double>> u_sc_var = new SideVariable<NDIM, double>("u_sc");
96 Pointer<SideVariable<NDIM, double>> f_sc_var = new SideVariable<NDIM, double>("f_sc");
97 Pointer<SideVariable<NDIM, double>> e_sc_var = new SideVariable<NDIM, double>("e_sc");
98 Pointer<SideVariable<NDIM, double>> r_sc_var = new SideVariable<NDIM, double>("r_sc");
99#if (NDIM == 2)
100 Pointer<NodeVariable<NDIM, double>> mu_nc_var = new NodeVariable<NDIM, double>("mu_node");
101 const int mu_nc_idx = var_db->registerVariableAndContext(mu_nc_var, ctx, IntVector<NDIM>(1));
102#elif (NDIM == 3)
103 Pointer<EdgeVariable<NDIM, double>> mu_ec_var = new EdgeVariable<NDIM, double>("mu_edge");
104 const int mu_ec_idx = var_db->registerVariableAndContext(mu_ec_var, ctx, IntVector<NDIM>(1));
105 Pointer<CellVariable<NDIM, double>> mu_cc_var = new CellVariable<NDIM, double>("mu_cc");
106 const int mu_cc_idx = var_db->registerVariableAndContext(mu_cc_var, ctx, IntVector<NDIM>(0));
107#endif
108
109 const int u_sc_idx = var_db->registerVariableAndContext(u_sc_var, ctx, IntVector<NDIM>(1));
110 const int f_sc_idx = var_db->registerVariableAndContext(f_sc_var, ctx, IntVector<NDIM>(1));
111 const int e_sc_idx = var_db->registerVariableAndContext(e_sc_var, ctx, IntVector<NDIM>(1));
112 const int r_sc_idx = var_db->registerVariableAndContext(r_sc_var, ctx, IntVector<NDIM>(1));
113
114 Pointer<CellVariable<NDIM, double>> u_cc_var = new CellVariable<NDIM, double>("u_cc", NDIM);
115 Pointer<CellVariable<NDIM, double>> f_cc_var = new CellVariable<NDIM, double>("f_cc", NDIM);
116 Pointer<CellVariable<NDIM, double>> e_cc_var = new CellVariable<NDIM, double>("e_cc", NDIM);
117 Pointer<CellVariable<NDIM, double>> r_cc_var = new CellVariable<NDIM, double>("r_cc", NDIM);
118

Callers

nothing calls this directly

Calls 15

getInputDatabaseMethod · 0.80
getComponentDatabaseMethod · 0.80
getPatchLevelMethod · 0.80
allocatePatchDataMethod · 0.80
fillDataMethod · 0.80
maxNormMethod · 0.80
L2NormMethod · 0.80
L1NormMethod · 0.80
getVisItDataWriterMethod · 0.45
getFinestLevelNumberMethod · 0.45

Tested by

no test coverage detected