Enzo-E Fields

[ This page is under development ]

Cello allows field data to be created and operated on in Blocks of an adaptive mesh hierarchy. Enzo-E defines specific fields, as well as groups of related fields. This page documents what fields are accessed by different Methods, recommended usage of Fields when writing Methods, and a reference of the Field API.

Using Fields in Methods

Field API

Method:Field::Field(FieldDescr *, FieldData *)
Summary:Create a Field object given a Field descriptor and a Field Data object
Return:none

This constructor creates a new Field object given a FieldDescr (field descriptor) and FieldData (field data) object.


Method:Field::Field(FieldDescr *, FieldData *)
Method:Field(const Field & field)
Summary:Copy constructor
Return:none

Method:Field::operator= (const Field & field)
Summary:Assignment operator
Return:Field &

Method:Field::~Field()
Summary:Destructor
Return:none

Method:Field::pup (PUP::er &p)
Summary:CHARM++ Pack / Unpack function
Return:void

Method:Field::field_descr()
Summary:Return the field descriptor for this field
Return:FieldDescr *

Method:Field::field_data()
Summary:Return the field data for this field
Return:FieldData *

Method:Field::set_field_descr(FieldDescr * field_descr)
Summary:Set the field descriptor for the Field object
Return:void

Method:Field::set_field_data(FieldData * field_data)
Summary:Set the field data object for the Field object
Return:void

Field Descriptor

Method:Field::set_alignment(int alignment)
Summary:Set alignment
Return:void

Method:Field::set_padding(int padding)
Summary:Set padding
Return:void

Method:Field::set_centering(int id, int cx, int cy=0, int cz=0)
Summary:Set centering for a field
Return:void

Method:Field::set_ghost_depth(int id, int gx, int gy=0, int gz=0)
Summary:Set ghost_depth for a field
Return:void

Method:Field::set_precision(int id, int precision)
Summary:Set precision for a field
Return:void

Method:Field::insert_permanent(const std::string & name)
Summary:Insert a new field
Return:int

Method:Field::insert_temporary(const std::string & name = “”)
Summary:Insert a new field
Return:int

Method:Field::field_count() const
Summary:Return the number of fields
Return:int

Method:Field::field_name(int id) const
Summary:Return name of the ith field
Return:std::string

Method:Field::is_field(const std::string & name) const
Summary:Return whether the field has been inserted
Return:bool

Method:Field::field_id(const std::string & name) const
Summary:Return the integer handle for the named field
Return:int

Properties

Method:Field::groups()
Summary:Return the grouping object for Fields
Return:Grouping *

Method:alignment() const
Summary:alignment in bytes of fields in memory
Return:int

Method:padding() const
Summary:padding in bytes between fields in memory
Return:int

Method:centering(int id, int * cx, int * cy = 0, int * cz = 0) const
Summary:centering of given field
Return:void

Method:is_centered(int id) const
Summary:return whether the field variable is centered in the cell
Return:bool

Method:ghost_depth(int id, int * gx, int * gy = 0, int * gz = 0) const
Summary:depth of ghost zones of given field
Return:void

Method:precision(int id) const
Summary:Return precision of given field
Return:int

Method:bytes_per_element(int id) const
Summary:Number of bytes per element required by the given field
Return:int

Method:is_permanent (int id_field) const
Summary:Whether the field is permanent or temporary
Return:bool

Method:num_permanent() const
Summary:Return the number of permanent fields
Return:int

History

Method:set_history (int num_history)
Summary:Set the history depth for storing old field values
Return:void

Method:num_history () const
Summary:Return the number of history generations to store
Return:int

Method:save_history (double time)
Summary:Copy “current” fields to history
Return:void

Copy “current” fields to history = 1 fields (saving time), and push back older generations up to num_history()


Method:history_time (int ih) const
Summary:Return time for given history
Return:double

Units

Method:units_scale_cgs (int id, double amount)
Summary:scale the field to cgs units given the unit scaling factor
Return:void

if it’s already in cgs, then leave as-is except if it’s in cgs but the scaling factor has changed (e.g. due to expansion) then adjust for the new scaling factor


Method:units_scale_code (int id, double amount)
Summary:convert the field to “code units” given the unit scaling factor
Return:void

if it’s already in code units, leave it as-is warning if scaling factor has changed.


Method:units_scaling (const FieldDescr *, int id)
Summary:Return the current scaling factor of the given Field
Return:double

1.0 if in code units, or the scaling factor if in cgs

FieldData

Method:size(int * nx, int * ny = 0, int * nz = 0) const
Summary:Return size of fields on the data, assuming centered
Return:void

Method:dimensions(int id_field,int * mx, int * my = 0, int * mz = 0) const
Summary:Return dimensions of fields on the data, assuming centered
Return:void

Method:values (int id_field, int index_history=0)
Method:values (std::string name, int index_history=0)
Summary:Return full array of values for the corresponding field
Return:char *

Return array for the corresponding field, which may or may not contain ghosts depending on if they’re allocated


Method:unknowns (int id_field, int index_history=0)
Method:unknowns (std::string name, int index_history=0)
Summary:Return array for the corresponding field
Return:char *

Return array for the corresponding field, which does not contain ghosts whether they’re allocated or not


Method:permanent () const
Summary:Return the array of all permanent fields
Return:const char *

Method:cell_width(double xm, double xp, double * hx, double ym=0, double yp=0, double * hy=0, double zm=0, double zp=0, double * hz=0) const
Summary:Return width of cells along each dimension
Return:void

Method:clear (float value = 0.0, int id_first = -1, int id_last = -1)
Summary:Clear specified array(s) to specified value
Return:void

Method:permanent_allocated() const
Summary:Return whether array is allocated or not
Return:bool

Method:permanent_size() const
Summary:Return whether array is allocated or not
Return:size_t

Method:allocate_permanent(bool ghosts_allocated = false)
Summary:Allocate storage for the field data
Return:void

Method:allocate_temporary(int id)
Summary:Allocate storage for the temporary fields
Return:void

Method:deallocate_temporary(int id)
Summary:Deallocate storage for the temporary fields
Return:void

Method:reallocate_permanent(bool ghosts_allocated = false)
Summary:Reallocate storage for the field data
Return:void

Reallocate storage for the field data, e.g. when changing from ghosts to non-ghosts [ costly for large blocks ]


Method:deallocate_permanent()
Summary:Deallocate storage for the field data
Return:void

Method:ghosts_allocated() const
Summary:Return whether ghost cells are allocated or not.
Return:bool

Method:field_size (int id, int *nx=0, int *ny=0, int *nz=0) const
Summary:Return the number of elements (nx,ny,nz) along each axis
Return:int

Return the number of elements (nx,ny,nz) along each axis, and total number of bytes n

Debugging

Method:print (const char * message, bool use_file = false) const
Summary:Print basic field characteristics for debugging
Return:void

Enzo-E Fields

  • acceleration_x
  • acceleration_y
  • acceleration_z
  • B
  • bfieldx
  • bfieldx_rx
  • bfieldx_ry
  • bfieldx_rz
  • bfieldy
  • bfieldy_rx
  • bfieldy_ry
  • bfieldy_rz
  • bfieldz
  • bfieldz_rx
  • bfieldz_ry
  • bfieldz_rz
  • cooling_time
  • density
  • density_total
  • dens_rx
  • dens_ry
  • dens_rz
  • DI_density
  • DII_density
  • driving_x
  • driving_y
  • driving_z
  • e_density
  • gamma
  • H2I_density
  • H2II_density
  • HDI_density
  • HeI_density
  • HeII_density
  • HeIII_density
  • HI_density
  • HII_density
  • HM_density
  • internal_energy
  • metal_density
  • potential
  • pressure
  • species_De
  • species_DI
  • species_DII
  • species_H2I
  • species_H2II
  • species_HDI
  • species_HeI
  • species_HeII
  • species_HeIII
  • species_HI
  • species_HII
  • species_HM
  • temperature
  • total_energy
  • velocity_x
  • velocity_y
  • velocity_z
  • velox
  • velox_rx
  • velox_ry
  • velox_rz
  • veloy
  • veloy_rx
  • veloy_ry
  • veloy_rz
  • veloz
  • veloz_rx
  • veloz_ry
  • veloz_rz
  • X