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