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