[cig-commits] commit: Add enable-tracers
Mercurial
hg at geodynamics.org
Tue Nov 22 22:49:42 PST 2011
changeset: 426:aa7353902de1
tag: tip
user: Walter Landry <wlandry at caltech.edu>
date: Tue Nov 22 22:49:25 2011 -0800
files: json_parser/add_defaults.cxx
description:
Add enable-tracers
diff -r 804a23469746 -r aa7353902de1 json_parser/add_defaults.cxx
--- a/json_parser/add_defaults.cxx Tue Nov 22 22:48:41 2011 -0800
+++ b/json_parser/add_defaults.cxx Tue Nov 22 22:49:25 2011 -0800
@@ -558,12 +558,41 @@ void add_defaults(json_spirit::Value &ro
"}"
"}");
- json_spirit::Value toolbox, plugins, basic, stokes, thermal;
+ std::string tracer_components
+ ("{"
+ "\"passiveSwarmMovementHandler\":"
+ "{"
+ "\"Type\": \"ParticleMovementHandler\""
+ "},"
+ "\"passiveTracerSwarm\":"
+ "{"
+ "\"Type\": \"MaterialPointsSwarm\","
+ "\"CellLayout\": \"cellLayout\","
+ "\"ParticleLayout\": \"pLayout\","
+ "\"FeMesh\": \"v-mesh\","
+ "\"ParticleCommHandlers\":"
+ "["
+ "\"passiveSwarmMovementHandler\""
+ "],"
+ "\"EscapedRoutine\": \"escapedRoutine\""
+ "},"
+ ""
+ "\"passiveTracerAdvect\":"
+ "{"
+ "\"Type\": \"SwarmAdvector\","
+ "\"Swarm\": \"passiveTracerSwarm\","
+ "\"TimeIntegrator\": \"timeIntegrator\","
+ "\"VelocityField\": \"VelocityField\""
+ "}"
+ "}");
+
+ json_spirit::Value toolbox, plugins, basic, stokes, thermal, tracers;
json_spirit::read_or_throw(toolbox_string,toolbox);
json_spirit::read_or_throw(plugins_string,plugins);
json_spirit::read_or_throw(basic_components,basic);
json_spirit::read_or_throw(stokes_components,stokes);
json_spirit::read_or_throw(thermal_components,thermal);
+ json_spirit::read_or_throw(tracer_components,tracers);
json_spirit::Object &o(root.get_obj());
@@ -603,7 +632,7 @@ void add_defaults(json_spirit::Value &ro
/* Add the standard components */
/* First find the components */
json_spirit::Object::iterator components(o.end());
- bool enable_thermal(false), enable_stokes(true);
+ bool enable_thermal(false), enable_stokes(true), enable_tracers(false);
for(json_spirit::Object::iterator i=o.begin(); i!=o.end(); ++i)
{
if(i->name_=="components")
@@ -622,9 +651,18 @@ void add_defaults(json_spirit::Value &ro
"true or false (no quotes)");
enable_thermal=i->value_.get_bool();
}
+ else if(i->name_=="enable-tracers")
+ {
+ if(i->value_.type()!=json_spirit::bool_type)
+ throw std::runtime_error("The field enable-tracers must be either"
+ "true or false (no quotes)");
+ enable_tracers=i->value_.get_bool();
+ }
}
/* New components get prepended, so add in reverse order */
+ if(enable_tracers)
+ add_components(components->value_.get_obj(),tracers.get_obj());
if(enable_thermal)
add_components(components->value_.get_obj(),thermal.get_obj());
if(enable_stokes)
More information about the CIG-COMMITS
mailing list