Bayeux
3.4.1
Core Foundation library for SuperNEMO
|
Abstract base class for all electromagnetic field. More...
#include <bayeux/emfield/base_electromagnetic_field.h>
Public Types | |
enum | flag_type { DEBUG = datatools::bit_mask::bit01, ELECTRIC_FIELD = datatools::bit_mask::bit02, MAGNETIC_FIELD = datatools::bit_mask::bit03, ELECTRIC_FIELD_CAN_BE_COMBINED = datatools::bit_mask::bit04, MAGNETIC_FIELD_CAN_BE_COMBINED = datatools::bit_mask::bit05, ELECTRIC_FIELD_IS_TIME_DEPENDENT = datatools::bit_mask::bit06, MAGNETIC_FIELD_IS_TIME_DEPENDENT = datatools::bit_mask::bit07 } |
Initialization flags. More... | |
enum | status_type { STATUS_SUCCESS = 0, STATUS_ERROR = 1, STATUS_NOT_INITIALIZED = 2, STATUS_INVALID_POSITION_TIME = 3, STATUS_NO_ELECTRIC_FIELD = 4, STATUS_NO_MAGNETIC_FIELD = 5 } |
Status at field computation. More... | |
typedef datatools::handle< base_electromagnetic_field > | handle_type |
typedef std::map< std::string, handle_type > | field_dict_type |
Public Types inherited from datatools::i_tree_dumpable | |
enum | ostream_type { OSTREAM_COUT = 1, OSTREAM_CERR = 2, OSTREAM_CLOG = 3 } |
Enumeration for standard output streams. More... | |
Public Member Functions | |
void | set_logging_priority (datatools::logger::priority priority_) |
Return the logging priority. More... | |
datatools::logger::priority | get_logging_priority () const |
Set the logging priority. More... | |
bool | is_initialized () const |
Check initialization status. More... | |
void | set_name (const std::string &) |
Set the name of the field. More... | |
const std::string & | get_name () const |
Return the name of the field. More... | |
bool | is_debug () const |
Check debug status. More... | |
void | set_debug (bool debug_) |
Set debug status. More... | |
bool | is_electric_field () const |
Check if the field is an electric field. More... | |
bool | is_magnetic_field () const |
Check if the field is a magnetic field. More... | |
bool | electric_field_can_be_combined () const |
Check if the electric field can be combined. More... | |
bool | magnetic_field_can_be_combined () const |
Check if the magnetic field can be combined. More... | |
bool | electric_field_is_time_dependent () const |
Check if the electric field depends on time. More... | |
bool | magnetic_field_is_time_dependent () const |
Check if the magnetic field depends on time. More... | |
base_electromagnetic_field (uint32_t flags_=0) | |
Constructor. More... | |
virtual | ~base_electromagnetic_field () |
Destructor. More... | |
virtual int | compute_electromagnetic_field (const geomtools::vector_3d &position_, double time_, geomtools::vector_3d &electric_field_, geomtools::vector_3d &magnetic_field_) const |
Compute the coordinates of the electric and magnetic fields at given position and time. More... | |
virtual int | compute_field (char label_, const geomtools::vector_3d &position_, double time_, geomtools::vector_3d &field_) const |
Compute the coordinates of the electric or magnetic field at given position and time. More... | |
virtual void | initialize_simple () |
Naked initialization. More... | |
virtual void | initialize_standalone (const datatools::properties &setup_) |
Standalone initialization, no external resources are needed, only a set of parameters. More... | |
virtual void | initialize_with_service_only (const datatools::properties &setup_, datatools::service_manager &service_manager_) |
Initialization using a set of parameters and a service manager. More... | |
virtual void | initialize_with_dictionary_only (const datatools::properties &setup_, field_dict_type &dictionary_) |
Initialization using a set of parameters and an external dictionary of EM fields. More... | |
virtual void | initialize (const datatools::properties &setup_, datatools::service_manager &service_manager_, field_dict_type &dictionary_)=0 |
Main initialization. More... | |
virtual void | reset ()=0 |
Reset the field. More... | |
virtual std::string | get_class_id () const =0 |
Return the class string identifier. More... | |
virtual bool | position_and_time_are_valid (const geomtools::vector_3d &position_, double time_) const |
Check if position and time are valid for this field. More... | |
virtual int | compute_electric_field (const geomtools::vector_3d &position_, double time_, geomtools::vector_3d &electric_field_) const |
Compute the coordinates of the electric field at given position and time. More... | |
virtual int | compute_magnetic_field (const geomtools::vector_3d &position_, double time_, geomtools::vector_3d &magnetic_field_) const |
Compute the coordinates of the magnetic field at given position and time. More... | |
virtual void | tree_dump (std::ostream &out_=std::clog, const std::string &title_="", const std::string &indent_="", bool inherit_=false) const |
Smart print. More... | |
Public Member Functions inherited from datatools::i_tree_dumpable | |
i_tree_dumpable () | |
Constructor. More... | |
virtual | ~i_tree_dumpable () |
Destructor. More... | |
virtual void | print_tree (std::ostream &out_=std::clog, const boost::property_tree::ptree &options_=empty_options()) const |
Main new interface method for printing. More... | |
void | print_tree_json (std::ostream &out_=std::clog, const std::string &json_options_="") const |
Printing with jsonized options. More... | |
void | print_tree_json (std::ostream &out_=std::clog, const char *json_options_=nullptr) const |
Printing with jsonized options. More... | |
void | tree_dump_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="", const std::string &indent_="", const bool inherit_=false) const |
void | tree_print_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="") const |
void | smart_print_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="", const std::string &indent_="") const |
Static Public Attributes | |
static const char | ELECTRIC_FIELD_LABEL = 'E' |
static const char | MAGNETIC_FIELD_LABEL = 'B' |
Protected Member Functions | |
void | _set_initialized (bool initialized_) |
void | _set_electric_field (bool=true) |
void | _set_magnetic_field (bool=true) |
void | _set_electric_field_can_be_combined (bool=true) |
void | _set_magnetic_field_can_be_combined (bool=true) |
void | _set_electric_field_is_time_dependent (bool=true) |
void | _set_magnetic_field_is_time_dependent (bool=true) |
void | _parse_basic_parameters (const datatools::properties &setup_, datatools::service_manager &service_manager_, field_dict_type &dictionary_) |
void | _set_defaults () |
Set default attributes values. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from datatools::i_tree_dumpable | |
static const boost::property_tree::ptree & | empty_options () |
static boost::property_tree::ptree | make_base_print_options (const std::string &title_, const std::string &indent_="", const bool inherit_=false) |
static std::ostream & | last_skip_tag (std::ostream &out_) |
static std::ostream & | skip_tag (std::ostream &out_) |
static std::ostream & | last_tag (std::ostream &out_) |
static std::ostream & | tag (std::ostream &out_) |
Abstract base class for all electromagnetic field.
typedef std::map<std::string, handle_type> emfield::base_electromagnetic_field::field_dict_type |
typedef datatools::handle<base_electromagnetic_field> emfield::base_electromagnetic_field::handle_type |
emfield::base_electromagnetic_field::base_electromagnetic_field | ( | uint32_t | flags_ = 0 | ) |
Constructor.
|
virtual |
Destructor.
|
protected |
|
protected |
Set default attributes values.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
virtual |
Compute the coordinates of the electric field at given position and time.
Reimplemented in emfield::polynomial_magnetic_field.
|
virtual |
Compute the coordinates of the electric and magnetic fields at given position and time.
|
virtual |
Compute the coordinates of the electric or magnetic field at given position and time.
|
virtual |
Compute the coordinates of the magnetic field at given position and time.
Reimplemented in emfield::polynomial_magnetic_field.
bool emfield::base_electromagnetic_field::electric_field_can_be_combined | ( | ) | const |
Check if the electric field can be combined.
bool emfield::base_electromagnetic_field::electric_field_is_time_dependent | ( | ) | const |
Check if the electric field depends on time.
|
pure virtual |
Return the class string identifier.
datatools::logger::priority emfield::base_electromagnetic_field::get_logging_priority | ( | ) | const |
Set the logging priority.
const std::string& emfield::base_electromagnetic_field::get_name | ( | ) | const |
Return the name of the field.
|
pure virtual |
Main initialization.
Implemented in emfield::polynomial_magnetic_field.
|
virtual |
Naked initialization.
|
virtual |
Standalone initialization, no external resources are needed, only a set of parameters.
|
virtual |
Initialization using a set of parameters and an external dictionary of EM fields.
|
virtual |
Initialization using a set of parameters and a service manager.
bool emfield::base_electromagnetic_field::is_debug | ( | ) | const |
Check debug status.
bool emfield::base_electromagnetic_field::is_electric_field | ( | ) | const |
Check if the field is an electric field.
bool emfield::base_electromagnetic_field::is_initialized | ( | ) | const |
Check initialization status.
bool emfield::base_electromagnetic_field::is_magnetic_field | ( | ) | const |
Check if the field is a magnetic field.
bool emfield::base_electromagnetic_field::magnetic_field_can_be_combined | ( | ) | const |
Check if the magnetic field can be combined.
bool emfield::base_electromagnetic_field::magnetic_field_is_time_dependent | ( | ) | const |
Check if the magnetic field depends on time.
|
virtual |
Check if position and time are valid for this field.
|
pure virtual |
void emfield::base_electromagnetic_field::set_debug | ( | bool | debug_ | ) |
Set debug status.
void emfield::base_electromagnetic_field::set_logging_priority | ( | datatools::logger::priority | priority_ | ) |
Return the logging priority.
void emfield::base_electromagnetic_field::set_name | ( | const std::string & | ) |
Set the name of the field.
|
virtual |
Smart print.
Reimplemented from datatools::i_tree_dumpable.
Reimplemented in emfield::multi_zone_field, emfield::oscillating_field, emfield::polynomial_magnetic_field, emfield::linear_combination_field, emfield::placement_field, emfield::uniform_magnetic_field, and emfield::uniform_electric_field.
|
static |
|
static |