A module for the definition of gravity. Gravity is described as a class that provides a function that returns the gravity vector direction and magnitude as a function of location. The module also contains the various functions necessary to add different gravity models that can then be selected in the input file.
§ ASPECT_REGISTER_GRAVITY_MODEL
#define ASPECT_REGISTER_GRAVITY_MODEL |
( |
|
classname, |
|
|
|
name, |
|
|
|
description |
|
) |
| |
Value:template class classname<2>; \
template class classname<3>; \
namespace ASPECT_REGISTER_GRAVITY_MODEL_ ## classname \
{ \
aspect::internal::Plugins::RegisterHelper<aspect::GravityModel::Interface<2>,classname<2>> \
dummy_ ## classname ## _2d (&aspect::GravityModel::register_gravity_model<2>, \
name, description); \
aspect::internal::Plugins::RegisterHelper<aspect::GravityModel::Interface<3>,classname<3>> \
dummy_ ## classname ## _3d (&aspect::GravityModel::register_gravity_model<3>, \
name, description); \
}
Given a class name, a name, and a description for the parameter file for a gravity model, register it with the functions that can declare their parameters and create these objects.
Definition at line 127 of file interface.h.
§ register_gravity_model()
template<int dim>
void aspect::GravityModel::register_gravity_model |
( |
const std::string & |
name, |
|
|
const std::string & |
description, |
|
|
void(*)(ParameterHandler &) |
declare_parameters_function, |
|
|
std::unique_ptr< Interface< dim >>(*)() |
factory_function |
|
) |
| |
Register a gravity model so that it can be selected from the parameter file.
- Parameters
-
name | A string that identifies the gravity model |
description | A text description of what this model does and that will be listed in the documentation of the parameter file. |
declare_parameters_function | A pointer to a function that can be used to declare the parameters that this gravity model wants to read from input files. |
factory_function | A pointer to a function that can create an object of this gravity model. |
§ create_gravity_model()
template<int dim>
std::unique_ptr<Interface<dim> > aspect::GravityModel::create_gravity_model |
( |
ParameterHandler & |
prm | ) |
|
A function that given the name of a model returns a pointer to an object that describes it. Ownership of the pointer is transferred to the caller.
The model object returned is not yet initialized and has not read its runtime parameters yet.
§ declare_parameters()
template<int dim>
void aspect::GravityModel::declare_parameters |
( |
ParameterHandler & |
prm | ) |
|
Declare the runtime parameters of the registered gravity models.