IGLib 1.4
The IGLib base library for development of numerical, technical and business applications.

IG::Num::StructuredField2d< TElement > Class Template Reference

Field where field elements are arranged in a 2 dimensional array. Usually represents a field over a structured 2D mesh. Elements can be accessed either through a single index running over all elements of the array, or by 2 indices indexing elements in 2 basic directions of the grid. The first index ("x direction") ie least significant and the last index is most significant. More...

Inheritance diagram for IG::Num::StructuredField2d< TElement >:
Collaboration diagram for IG::Num::StructuredField2d< TElement >:

List of all members.

Public Member Functions

 StructuredField2d ()
 Constructs a new empty 2D field (no elements contained) with no name and no description.
 StructuredField2d (int dim1, int dim2)
 Constructs a new 2D field with the specified dimensions, name and description. Table of elements is allocated. Elements of the field are arranged in a 2D structured grid.
 StructuredField2d (int dim1, int dim2, string fieldName)
 Constructs a new 2D field with the specified dimensions, name and description. Table of elements is allocated. Elements of the field are arranged in a 2D structured grid.
 StructuredField2d (int dim1, int dim2, string fieldName, string fieldDescription)
 Constructs a new 2D field with the specified dimensions, name and description. Table of elements is allocated. Elements of the field are arranged in a 2D structured grid.
int GetIndex (int i1, int i2)
 Returns the linear index of the component that is identified by 2 separate indices. Field elements are stored in one dimensional array but they can be accesses by 2 indices as they were part of 2 dimensional array.The last index (for "y direction") is most significant and the first one (in "x direction") is least significant.
void getIndices (int index, out int i1, out int i2)
 Converts linear (contiguous) index to 2 separate indices for 2 dimensions. The last index (for "y direction") is most significant and the first one (in "x direction") is least significant.
virtual void SetDimensions (int d1, int d2)
 Sets all three dimensions of the current 2D structured field.

Static Public Member Functions

static void MapCoordinatesPlain (StructuredField2d< vec3 > referenceField, StructuredField2d< vec3 > targetField, IFunc3d fx, IFunc3d fy, IFunc3d fz)
 Generates coordinates of a 2D structured grid embedded in 3D by mapping coordinates of a reference grid by the specified scalar functions that map coordinate vectors from the reference domain to individual coordinate components in the actual domain. Target field can be the same as the reference field (in this case coordinates of the reference field are overwritten one by one).Function can be used for transformation of any nodal vector values of a grid, not just for transformation of coordinates.This is plain version of the method that does not check consistency of dimension or existence of objects.
static void MapCoordinates (StructuredField2d< vec3 > referenceField, StructuredField2d< vec3 > targetField, IFunc3d fx, IFunc3d fy, IFunc3d fz)
 Generates coordinates of a 2D structured grid embedded in 3D by mapping coordinates of a reference grid by the specified scalar functions that map coordinate vectors from the reference domain to individual coordinate components in the actual domain. Target field can be the same as the reference field (in this case coordinates of the reference field are overwritten one by one).Function can be used for transformation of any nodal vector values of a grid, not just for transformation of coordinates.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.
static void MapCoordinatesReferencePlain (StructuredField2d< vec3 > referenceField, StructuredField2d< vec3 > targetField, IFunc2d fx, IFunc2d fy, IFunc2d fz)
 Generates coordinates of a 2D structured grid embedded in 3D by mapping first two coordinate components of reference grid nodes by the specified scalar functions of two variables. This method is specialized for transforming coordinates of a reference grid that lies in the XY plane. Target field can be the same as the reference field (in this case coordinates of the reference field are overwritten one by one).This is plain version of the method that does not check consistency of dimension or existence of objects.
static void MapCoordinatesReference (StructuredField2d< vec3 > referenceField, StructuredField2d< vec3 > targetField, IFunc2d fx, IFunc2d fy, IFunc2d fz)
 Generates coordinates of a 2D structured grid embedded in 3D by mapping first two coordinate components of reference grid nodes by the specified scalar functions of two variables. This method is specialized for transforming coordinates of a reference grid that lies in the XY plane. Target field can be the same as the reference field (in this case coordinates of the reference field are overwritten one by one).Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.
static void MapCoordinatesToScalarsPlain (StructuredField2d< vec3 > referenceField, StructuredField2d< double > targetScalarField, IFunc3d scalarMap)
 Generates scalar values for a 2D structured grid embedded in 3D space from the specified field of grid coordinates by a specified scalar function of 3 variables that maps coordinates to scalar values. Function can be used for any mapping of nodal vector values to nodal scalar values of a 2D grid embedded in 3D, not just for mapping of coordinates.This is plain version of the method that does not check consistency of dimension or existence of objects.
static void MapCoordinatesToScalars (StructuredField2d< vec3 > referenceField, StructuredField2d< double > targetScalarField, IFunc3d scalarMap)
 Generates scalar values for a 2D structured grid embedded in 3D space from the specified field of grid coordinates by a specified scalar function of 3 variables that maps coordinates to scalar values. Function can be used for any mapping of nodal vector values to nodal scalar values of a 2D grid embedded in 3D, not just for mapping of coordinates.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.
static void GenerateCoordinatesPlain (StructuredField2d< vec3 > field, double minxRef, double maxxRef, double minyRef, double maxyRef)
 Generates coordinates of a 2D regular grid embeddes in 3D, lying on the XY plane, with grid directions parallel to first two coordinate axes and equidistantly arranged nodes in both directions. Numbers of nodes in each grid directions are specified by current dimensions of the grid.This is plain version of the method that does not check consistency of dimension or existence of objects.
static void GenerateCoordinates (StructuredField2d< vec3 > field, double minxRef, double maxxRef, double minyRef, double maxyRef)
 Generates coordinates of a 2D regular grid embeddes in 3D, lying on the XY plane, with grid directions parallel to first two coordinate axes and equidistantly arranged nodes in both directions. Numbers of nodes in each grid directions are specified by current dimensions of the grid.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.
static void GenerateCoordinatesPlain (StructuredField2d< vec3 > field, double minxRef, double maxxRef, double minyRef, double maxyRef, IFunc2d fx, IFunc2d fy, IFunc2d fz)
 Generates coordinates of a 2D structured grid embedded in 3D by mapping nodes of a regular 2D structured grid lying on the XY plane with grid directions parallel to the first two coordinate axes. First two coordinates of each reference grid node are mapped to the three coordinate components of the generated grid.The generated grid covers a bounded patch of a parametric surface in 3D specified by the three functions.Numbers of nodes in each grid directions are specified by current dimensions of the grid.This is plain version of the method that does not check consistency of dimension or existence of objects.
static void GenerateCoordinates (StructuredField2d< vec3 > field, double minxRef, double maxxRef, double minyRef, double maxyRef, IFunc2d fx, IFunc2d fy, IFunc2d fz)
 Generates coordinates of a 2D structured grid embedded in 3D by mapping nodes of a regular 2D structured grid lying on the XY plane with grid directions parallel to the first two coordinate axes. First two coordinates of each reference grid node are mapped to the three coordinate components of the generated grid.The generated grid covers a bounded patch of a parametric surface in 3D specified by the three functions.Numbers of nodes in each grid directions are specified by current dimensions of the grid.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.
static void MapCoordinatesPlain (StructuredField2d< vec2 > referenceField, StructuredField2d< vec2 > targetField, IFunc2d fx, IFunc2d fy)
 Generates coordinates of a 2D structured grid by mapping coordinates of a reference grid by the specified scalar functions that map coordinate vectors from the reference domain to individual coordinate components in the actual domain. Target field can be the same as the reference field (in this case coordinates of the reference field are overwritten one by one).Function can be used for transformation of any nodal vector values of a grid, not just for transformation of coordinates.This is plain version of the method that does not check consistency of dimension or existence of objects.
static void MapCoordinates (StructuredField2d< vec2 > referenceField, StructuredField2d< vec2 > targetField, IFunc2d fx, IFunc2d fy)
 Generates coordinates of a 2D structured grid by mapping coordinates of a reference grid by the specified scalar functions that map coordinate vectors from the reference domain to individual coordinate components in the actual domain. Target field can be the same as the reference field (in this case coordinates of the reference field are overwritten one by one).Function can be used for transformation of any nodal vector values of a grid, not just for transformation of coordinates.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.
static void MapCoordinatesToScalarsPlain (StructuredField2d< vec2 > referenceField, StructuredField2d< double > targetScalarField, IFunc2d scalarMap)
 Generates scalar values for a 2D structured grid from the specified field of grid coordinates by a specified scalar function of 2 variables that maps coordinates to scalar values. Function can be used for any mapping of nodal vector values to nodal scalar values of a 2D grid, not just for mapping of coordinates.This is plain version of the method that does not check consistency of dimension or existence of objects.
static void MapCoordinatesToScalars (StructuredField2d< vec2 > referenceField, StructuredField2d< double > targetScalarField, IFunc2d scalarMap)
 Generates scalar values for a 2D structured grid from the specified field of grid coordinates by a specified scalar function of 2 variables that maps coordinates to scalar values. Function can be used for any mapping of nodal vector values to nodal scalar values of a 2D grid, not just for mapping of coordinates.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.
static void GenerateCoordinatesPlain (StructuredField2d< vec2 > field, double minxRef, double maxxRef, double minyRef, double maxyRef)
 Generates coordinates of a 2D regular grid, with grid directions parallel to coordinate axes and equidistantly arranged nodes in both directions. Numbers of nodes in each grid direction are specified by current dimensions of the grid.This is plain version of the method that does not check consistency of dimension or existence of objects.
static void GenerateCoordinates (StructuredField2d< vec2 > field, double minxRef, double maxxRef, double minyRef, double maxyRef)
 Generates coordinates of a 2D regular grid, with grid directions parallel to coordinate axes and equidistantly arranged nodes in both directions. Numbers of nodes in each grid direction are specified by current dimensions of the grid.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.
static void GenerateCoordinatesPlain (StructuredField2d< vec2 > field, double minxRef, double maxxRef, double minyRef, double maxyRef, IFunc2d fx, IFunc2d fy)
 Generates coordinates of a 2D structured grid by mapping nodal coordinates of a regular 2D structured grid with grid directions parallel to coordinate axes. Coordinates of each reference grid node are mapped to the two coordinate components of the generated grid.The generated grid covers a bounded parametric patch in 2D specified by the two functions.Numbers of nodes in each grid directions are specified by current dimensions of the grid.This is plain version of the method that does not check consistency of dimension or existence of objects.
static void GenerateCoordinates (StructuredField2d< vec2 > field, double minxRef, double maxxRef, double minyRef, double maxyRef, IFunc2d fx, IFunc2d fy)
 Generates coordinates of a 2D structured grid by mapping nodal coordinates of a regular 2D structured grid with grid directions parallel to coordinate axes. Coordinates of each reference grid node are mapped to the two coordinate components of the generated grid.The generated grid covers a bounded parametric patch in 2D specified by the two functions.unctions.Numbers of nodes in each grid directions are specified by current dimensions of the grid.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.

Properties

TElement this [int i1, int i2] [get, set]
 Returns element of the field at specified indices.
int Dim1 [get, set]
 Returns the first dimenson of the structured mesh (number of mesh points in the first direction). Dependencies are handled by a call to the SetDimensions method when the property is set.
int Dim2 [get, set]
 Returns the second dimenson of the structured mesh (number of mesh points in the second direction). Dependencies are handled by a call to the SetDimensions method when the property is set.

Private Attributes

int _d1
int _d2

Detailed Description

template<TElement>
class IG::Num::StructuredField2d< TElement >

Field where field elements are arranged in a 2 dimensional array. Usually represents a field over a structured 2D mesh.

Elements can be accessed either through a single index running over all elements of the array, or by 2 indices indexing elements in 2 basic directions of the grid. The first index ("x direction") ie least significant and the last index is most significant.

Template Parameters:
TElementType of elements in the field.

Indexing of elements of the structured 2D field has changed in 2011. Now the first index (in x direction) is least significant and the last one is most significant, opposite to notation in matrices. $A Igor Jan08 Mar09;


Member Function Documentation

template<TElement >
IG::Num::StructuredField2d< TElement >::StructuredField2d ( ) [inline]

Constructs a new empty 2D field (no elements contained) with no name and no description.

template<TElement >
IG::Num::StructuredField2d< TElement >::StructuredField2d ( int  dim1,
int  dim2 
) [inline]

Constructs a new 2D field with the specified dimensions, name and description. Table of elements is allocated. Elements of the field are arranged in a 2D structured grid.

template<TElement >
IG::Num::StructuredField2d< TElement >::StructuredField2d ( int  dim1,
int  dim2,
string  fieldName 
) [inline]

Constructs a new 2D field with the specified dimensions, name and description. Table of elements is allocated. Elements of the field are arranged in a 2D structured grid.

Parameters:
fieldNameName of the field.
template<TElement >
IG::Num::StructuredField2d< TElement >::StructuredField2d ( int  dim1,
int  dim2,
string  fieldName,
string  fieldDescription 
) [inline]

Constructs a new 2D field with the specified dimensions, name and description. Table of elements is allocated. Elements of the field are arranged in a 2D structured grid.

Parameters:
dim1First dimension of the field (number of grid nodes in the first direction).
dim2Second dimension of the field (number of grid nodes in the second direction).
fieldNameName of the field.
fieldDescriptionField description.
template<TElement >
int IG::Num::StructuredField2d< TElement >::GetIndex ( int  i1,
int  i2 
) [inline]

Returns the linear index of the component that is identified by 2 separate indices. Field elements are stored in one dimensional array but they can be accesses by 2 indices as they were part of 2 dimensional array.The last index (for "y direction") is most significant and the first one (in "x direction") is least significant.

Parameters:
i1The first index of an element in a 2D array (least significant).
i2The second index of an element in a 2D array.

Indexing of elements of the structured 2D field has changed in 2011. Now the first index (in x direction) is least significant and the last one is most signifivant, opposite to notation in matrices. $A Igor Jan08 Oct11;

template<TElement >
void IG::Num::StructuredField2d< TElement >::getIndices ( int  index,
out int  i1,
out int  i2 
) [inline]

Converts linear (contiguous) index to 2 separate indices for 2 dimensions. The last index (for "y direction") is most significant and the first one (in "x direction") is least significant.

Parameters:
indexOverall contiguous index.
i1The first index of an element in a 2D array (least significant)
i2The second index of an element in a 2D array.

Indexing of elements of the structured 2D field has changed in 2011. Now the first index (in x direction) is least significant and the last one is most signifivant, opposite to notation in matrices. $A Igor Jan08 Oct11;

template<TElement >
virtual void IG::Num::StructuredField2d< TElement >::SetDimensions ( int  d1,
int  d2 
) [inline, virtual]

Sets all three dimensions of the current 2D structured field.

Parameters:
d1First dimension.
d2Second dimension.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::MapCoordinatesPlain ( StructuredField2d< vec3 referenceField,
StructuredField2d< vec3 targetField,
IFunc3d  fx,
IFunc3d  fy,
IFunc3d  fz 
) [inline, static]

Generates coordinates of a 2D structured grid embedded in 3D by mapping coordinates of a reference grid by the specified scalar functions that map coordinate vectors from the reference domain to individual coordinate components in the actual domain. Target field can be the same as the reference field (in this case coordinates of the reference field are overwritten one by one).Function can be used for transformation of any nodal vector values of a grid, not just for transformation of coordinates.This is plain version of the method that does not check consistency of dimension or existence of objects.

Parameters:
referenceFieldField containing reference coordinates that will be mapped to actual coordinates.

Dimensions must be set and array of vector values (coordinates) must be allocated before the function is called.

Parameters:
targetFieldField for which transformed coordinates are generated.

Dimensions must be set and consistent with dimensions of the reference field, and array of vector values must be allocated before the function is called.

This parameter can be the same field as referenceField .

Parameters:
fxFunction that maps node coordinates of the reference grid to the first node coordinates of the actual grid.
fyFunction that maps node coordinates of the reference grid to the second node coordinates of the actual grid.
fzFunction that maps node coordinates of the reference grid to the third node coordinates of the actual grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::MapCoordinates ( StructuredField2d< vec3 referenceField,
StructuredField2d< vec3 targetField,
IFunc3d  fx,
IFunc3d  fy,
IFunc3d  fz 
) [inline, static]

Generates coordinates of a 2D structured grid embedded in 3D by mapping coordinates of a reference grid by the specified scalar functions that map coordinate vectors from the reference domain to individual coordinate components in the actual domain. Target field can be the same as the reference field (in this case coordinates of the reference field are overwritten one by one).Function can be used for transformation of any nodal vector values of a grid, not just for transformation of coordinates.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.

Parameters:
referenceFieldField containing reference coordinates that will be mapped to actual coordinates.

Dimensions must be set and array of vector values (coordinates) must be allocated before the function is called.

Parameters:
targetFieldField for which coordinates are generated.

Dimensions must be set and consistent with dimensions of the reference field, and array of vector values must be allocated before the function is called.

This parameter can be the same field as referenceField .

Parameters:
fxFunction that maps node coordinates of the reference grid to the first node coordinates of the actual grid.
fyFunction that maps node coordinates of the reference grid to the second node coordinates of the actual grid.
fzFunction that maps node coordinates of the reference grid to the third node coordinates of the actual grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::MapCoordinatesReferencePlain ( StructuredField2d< vec3 referenceField,
StructuredField2d< vec3 targetField,
IFunc2d  fx,
IFunc2d  fy,
IFunc2d  fz 
) [inline, static]

Generates coordinates of a 2D structured grid embedded in 3D by mapping first two coordinate components of reference grid nodes by the specified scalar functions of two variables. This method is specialized for transforming coordinates of a reference grid that lies in the XY plane. Target field can be the same as the reference field (in this case coordinates of the reference field are overwritten one by one).This is plain version of the method that does not check consistency of dimension or existence of objects.

Parameters:
referenceFieldField containing reference coordinates that will be mapped to actual coordinates.

Dimensions must be set and array of vector values (coordinates) must be allocated before the function is called.

Parameters:
targetFieldField for which transformed coordinates are generated.

Dimensions must be set and consistent with dimensions of the reference field, and array of vector values must be allocated before the function is called.

This parameter can be the same field as referenceField .

Parameters:
fxFunction that maps node coordinates of the reference grid to the first node coordinates of the actual grid.
fyFunction that maps node coordinates of the reference grid to the second node coordinates of the actual grid.
fzFunction that maps node coordinates of the reference grid to the third node coordinates of the actual grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::MapCoordinatesReference ( StructuredField2d< vec3 referenceField,
StructuredField2d< vec3 targetField,
IFunc2d  fx,
IFunc2d  fy,
IFunc2d  fz 
) [inline, static]

Generates coordinates of a 2D structured grid embedded in 3D by mapping first two coordinate components of reference grid nodes by the specified scalar functions of two variables. This method is specialized for transforming coordinates of a reference grid that lies in the XY plane. Target field can be the same as the reference field (in this case coordinates of the reference field are overwritten one by one).Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.

Parameters:
referenceFieldField containing reference coordinates that will be mapped to actual coordinates.

Dimensions must be set and array of vector values (coordinates) must be allocated before the function is called.

Parameters:
targetFieldField for which coordinates are generated.

Dimensions must be set and consistent with dimensions of the reference field, and array of vector values must be allocated before the function is called.

This parameter can be the same field as referenceField .

Parameters:
fxFunction that maps node coordinates of the reference grid to the first node coordinates of the actual grid.
fyFunction that maps node coordinates of the reference grid to the second node coordinates of the actual grid.
fzFunction that maps node coordinates of the reference grid to the third node coordinates of the actual grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::MapCoordinatesToScalarsPlain ( StructuredField2d< vec3 referenceField,
StructuredField2d< double >  targetScalarField,
IFunc3d  scalarMap 
) [inline, static]

Generates scalar values for a 2D structured grid embedded in 3D space from the specified field of grid coordinates by a specified scalar function of 3 variables that maps coordinates to scalar values. Function can be used for any mapping of nodal vector values to nodal scalar values of a 2D grid embedded in 3D, not just for mapping of coordinates.This is plain version of the method that does not check consistency of dimension or existence of objects.

Parameters:
referenceFieldField containing coordinates that will be mapped to scalar values.

Dimensions must be set and array of vector values (coordinates) must be allocated before the function is called.

Parameters:
targetFieldField in which the mapped scalars are stored.

Dimensions must be set and consistent with dimensions of the reference field, and array of values must be allocated before the function is called.

Parameters:
scalarMapFunction that maps node coordinates of the reference grid to scalar values of the target grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::MapCoordinatesToScalars ( StructuredField2d< vec3 referenceField,
StructuredField2d< double >  targetScalarField,
IFunc3d  scalarMap 
) [inline, static]

Generates scalar values for a 2D structured grid embedded in 3D space from the specified field of grid coordinates by a specified scalar function of 3 variables that maps coordinates to scalar values. Function can be used for any mapping of nodal vector values to nodal scalar values of a 2D grid embedded in 3D, not just for mapping of coordinates.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.

Parameters:
referenceFieldField containing coordinates that will be mapped to scalar values.

Dimensions must be set and array of vector values (coordinates) must be allocated before the function is called.

Parameters:
targetFieldField in which the mapped scalars are stored.

Dimensions must be set and consistent with dimensions of the reference field, and array of values must be allocated before the function is called.

Parameters:
scalarMapFunction that maps node coordinates of the reference grid to scalar values of the target grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::GenerateCoordinatesPlain ( StructuredField2d< vec3 field,
double  minxRef,
double  maxxRef,
double  minyRef,
double  maxyRef 
) [inline, static]

Generates coordinates of a 2D regular grid embeddes in 3D, lying on the XY plane, with grid directions parallel to first two coordinate axes and equidistantly arranged nodes in both directions. Numbers of nodes in each grid directions are specified by current dimensions of the grid.This is plain version of the method that does not check consistency of dimension or existence of objects.

Parameters:
fieldField for which coordinates are generated. Dimensions must be set and array of vector values allocated before this function is called.
minxRefMinimal value of x coordinate of the generated grid.
maxxRefMaximal value of x coordinate of the generated grid.
minyRefMinimal value of y coordinate of the generated grid.
maxyRefMaximal value of y coordinate of the generated grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::GenerateCoordinates ( StructuredField2d< vec3 field,
double  minxRef,
double  maxxRef,
double  minyRef,
double  maxyRef 
) [inline, static]

Generates coordinates of a 2D regular grid embeddes in 3D, lying on the XY plane, with grid directions parallel to first two coordinate axes and equidistantly arranged nodes in both directions. Numbers of nodes in each grid directions are specified by current dimensions of the grid.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.

Parameters:
fieldField for which coordinates are generated. Dimensions must be set and array of vector values allocated before this function is called.
minxRefMinimal value of x coordinate of the generated grid.
maxxRefMaximal value of x coordinate of the generated grid.
minyRefMinimal value of y coordinate of the generated grid.
maxyRefMaximal value of y coordinate of the generated grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::GenerateCoordinatesPlain ( StructuredField2d< vec3 field,
double  minxRef,
double  maxxRef,
double  minyRef,
double  maxyRef,
IFunc2d  fx,
IFunc2d  fy,
IFunc2d  fz 
) [inline, static]

Generates coordinates of a 2D structured grid embedded in 3D by mapping nodes of a regular 2D structured grid lying on the XY plane with grid directions parallel to the first two coordinate axes. First two coordinates of each reference grid node are mapped to the three coordinate components of the generated grid.The generated grid covers a bounded patch of a parametric surface in 3D specified by the three functions.Numbers of nodes in each grid directions are specified by current dimensions of the grid.This is plain version of the method that does not check consistency of dimension or existence of objects.

Parameters:
fieldField for which coordinates are generated. Dimensions must be set and array of vector values allocated before this function is called.
minxRefLower bound for the first parameter in the reference coordinate system.
maxxRefUpper bound for the first parameter in the reference coordinate system.
minyRefLower bound for the second parameter in the reference coordinate system.
maxyRefUpper bound for the second parameter in the reference coordinate system.
minzRefLower bound for the third parameter in the reference coordinate system.
maxzRefUpper bound for the third parameter in the reference coordinate system.
fxFunction that maps node coordinates of the reference grid to the first node coordinates' component of the actual grid.
fyFunction that maps node coordinates of the reference grid to the second node coordinates' component of the actual grid.
fzFunction that maps node coordinates of the reference grid to the third node coordinates' component of the actual grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::GenerateCoordinates ( StructuredField2d< vec3 field,
double  minxRef,
double  maxxRef,
double  minyRef,
double  maxyRef,
IFunc2d  fx,
IFunc2d  fy,
IFunc2d  fz 
) [inline, static]

Generates coordinates of a 2D structured grid embedded in 3D by mapping nodes of a regular 2D structured grid lying on the XY plane with grid directions parallel to the first two coordinate axes. First two coordinates of each reference grid node are mapped to the three coordinate components of the generated grid.The generated grid covers a bounded patch of a parametric surface in 3D specified by the three functions.Numbers of nodes in each grid directions are specified by current dimensions of the grid.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.

Parameters:
fieldField for which coordinates are generated. Dimensions must be set and array of vector values allocated before this function is called.
minxRefLower bound for the first parameter in the reference coordinate system.
maxxRefUpper bound for the first parameter in the reference coordinate system.
minyRefLower bound for the second parameter in the reference coordinate system.
maxyRefUpper bound for the second parameter in the reference coordinate system.
minzRefLower bound for the third parameter in the reference coordinate system.
maxzRefUpper bound for the third parameter in the reference coordinate system.
fxFunction that maps node coordinates of the reference grid to the first node coordinates' component of the actual grid.
fyFunction that maps node coordinates of the reference grid to the second node coordinates' component of the actual grid.
fzFunction that maps node coordinates of the reference grid to the third node coordinates' component of the actual grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::MapCoordinatesPlain ( StructuredField2d< vec2 referenceField,
StructuredField2d< vec2 targetField,
IFunc2d  fx,
IFunc2d  fy 
) [inline, static]

Generates coordinates of a 2D structured grid by mapping coordinates of a reference grid by the specified scalar functions that map coordinate vectors from the reference domain to individual coordinate components in the actual domain. Target field can be the same as the reference field (in this case coordinates of the reference field are overwritten one by one).Function can be used for transformation of any nodal vector values of a grid, not just for transformation of coordinates.This is plain version of the method that does not check consistency of dimension or existence of objects.

Parameters:
referenceFieldField containing reference coordinates that will be mapped to actual coordinates.

Dimensions must be set and array of vector values (coordinates) must be allocated before the function is called.

Parameters:
targetFieldField for which transformed coordinates are generated.

Dimensions must be set and consistent with dimensions of the reference field, and array of vector values must be allocated before the function is called.

This parameter can be the same field as referenceField .

Parameters:
fxFunction that maps node coordinates of the reference grid to the first node coordinates of the actual grid.
fyFunction that maps node coordinates of the reference grid to the second node coordinates of the actual grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::MapCoordinates ( StructuredField2d< vec2 referenceField,
StructuredField2d< vec2 targetField,
IFunc2d  fx,
IFunc2d  fy 
) [inline, static]

Generates coordinates of a 2D structured grid by mapping coordinates of a reference grid by the specified scalar functions that map coordinate vectors from the reference domain to individual coordinate components in the actual domain. Target field can be the same as the reference field (in this case coordinates of the reference field are overwritten one by one).Function can be used for transformation of any nodal vector values of a grid, not just for transformation of coordinates.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.

Parameters:
referenceFieldField containing reference coordinates that will be mapped to actual coordinates.

Dimensions must be set and array of vector values (coordinates) must be allocated before the function is called.

Parameters:
targetFieldField for which coordinates are generated.

Dimensions must be set and consistent with dimensions of the reference field, and array of vector values must be allocated before the function is called.

This parameter can be the same field as referenceField .

Parameters:
fxFunction that maps node coordinates of the reference grid to the first node coordinates of the actual grid.
fyFunction that maps node coordinates of the reference grid to the second node coordinates of the actual grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::MapCoordinatesToScalarsPlain ( StructuredField2d< vec2 referenceField,
StructuredField2d< double >  targetScalarField,
IFunc2d  scalarMap 
) [inline, static]

Generates scalar values for a 2D structured grid from the specified field of grid coordinates by a specified scalar function of 2 variables that maps coordinates to scalar values. Function can be used for any mapping of nodal vector values to nodal scalar values of a 2D grid, not just for mapping of coordinates.This is plain version of the method that does not check consistency of dimension or existence of objects.

Parameters:
referenceFieldField containing coordinates that will be mapped to scalar values.

Dimensions must be set and array of vector values (coordinates) must be allocated before the function is called.

Parameters:
targetFieldField in which the mapped scalars are stored.

Dimensions must be set and consistent with dimensions of the reference field, and array of values must be allocated before the function is called.

Parameters:
scalarMapFunction that maps node coordinates of the reference grid to scalar values of the target grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::MapCoordinatesToScalars ( StructuredField2d< vec2 referenceField,
StructuredField2d< double >  targetScalarField,
IFunc2d  scalarMap 
) [inline, static]

Generates scalar values for a 2D structured grid from the specified field of grid coordinates by a specified scalar function of 2 variables that maps coordinates to scalar values. Function can be used for any mapping of nodal vector values to nodal scalar values of a 2D grid, not just for mapping of coordinates.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.

Parameters:
referenceFieldField containing coordinates that will be mapped to scalar values.

Dimensions must be set and array of vector values (coordinates) must be allocated before the function is called.

Parameters:
targetFieldField in which the mapped scalars are stored.

Dimensions must be set and consistent with dimensions of the reference field, and array of values must be allocated before the function is called.

Parameters:
scalarMapFunction that maps node coordinates of the reference grid to scalar values of the target grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::GenerateCoordinatesPlain ( StructuredField2d< vec2 field,
double  minxRef,
double  maxxRef,
double  minyRef,
double  maxyRef 
) [inline, static]

Generates coordinates of a 2D regular grid, with grid directions parallel to coordinate axes and equidistantly arranged nodes in both directions. Numbers of nodes in each grid direction are specified by current dimensions of the grid.This is plain version of the method that does not check consistency of dimension or existence of objects.

Parameters:
fieldField for which coordinates are generated. Dimensions must be set and array of vector values allocated before this function is called.
minxRefMinimal value of x coordinate of the generated grid.
maxxRefMaximal value of x coordinate of the generated grid.
minyRefMinimal value of y coordinate of the generated grid.
maxyRefMaximal value of y coordinate of the generated grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::GenerateCoordinates ( StructuredField2d< vec2 field,
double  minxRef,
double  maxxRef,
double  minyRef,
double  maxyRef 
) [inline, static]

Generates coordinates of a 2D regular grid, with grid directions parallel to coordinate axes and equidistantly arranged nodes in both directions. Numbers of nodes in each grid direction are specified by current dimensions of the grid.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.

Parameters:
fieldField for which coordinates are generated. Dimensions must be set and array of vector values allocated before this function is called.
minxRefMinimal value of x coordinate of the generated grid.
maxxRefMaximal value of x coordinate of the generated grid.
minyRefMinimal value of y coordinate of the generated grid.
maxyRefMaximal value of y coordinate of the generated grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::GenerateCoordinatesPlain ( StructuredField2d< vec2 field,
double  minxRef,
double  maxxRef,
double  minyRef,
double  maxyRef,
IFunc2d  fx,
IFunc2d  fy 
) [inline, static]

Generates coordinates of a 2D structured grid by mapping nodal coordinates of a regular 2D structured grid with grid directions parallel to coordinate axes. Coordinates of each reference grid node are mapped to the two coordinate components of the generated grid.The generated grid covers a bounded parametric patch in 2D specified by the two functions.Numbers of nodes in each grid directions are specified by current dimensions of the grid.This is plain version of the method that does not check consistency of dimension or existence of objects.

Parameters:
fieldField for which coordinates are generated. Dimensions must be set and array of vector values allocated before this function is called.
minxRefLower bound for the first parameter in the reference coordinate system.
maxxRefUpper bound for the first parameter in the reference coordinate system.
minyRefLower bound for the second parameter in the reference coordinate system.
maxyRefUpper bound for the second parameter in the reference coordinate system.
fxFunction that maps node coordinates of the reference grid to the first node coordinates' component of the actual grid.
fyFunction that maps node coordinates of the reference grid to the second node coordinates' component of the actual grid.
template<TElement >
static void IG::Num::StructuredField2d< TElement >::GenerateCoordinates ( StructuredField2d< vec2 field,
double  minxRef,
double  maxxRef,
double  minyRef,
double  maxyRef,
IFunc2d  fx,
IFunc2d  fy 
) [inline, static]

Generates coordinates of a 2D structured grid by mapping nodal coordinates of a regular 2D structured grid with grid directions parallel to coordinate axes. Coordinates of each reference grid node are mapped to the two coordinate components of the generated grid.The generated grid covers a bounded parametric patch in 2D specified by the two functions.unctions.Numbers of nodes in each grid directions are specified by current dimensions of the grid.Consistency of dimensions and existence of objects are checked and exceptions are thrown when checks fail.

Parameters:
fieldField for which coordinates are generated. Dimensions must be set and array of vector values allocated before this function is called.
minxRefLower bound for the first parameter in the reference coordinate system.
maxxRefUpper bound for the first parameter in the reference coordinate system.
minyRefLower bound for the second parameter in the reference coordinate system.
maxyRefUpper bound for the second parameter in the reference coordinate system.
fxFunction that maps node coordinates of the reference grid to the first node coordinates' component of the actual grid.
fyFunction that maps node coordinates of the reference grid to the second node coordinates' component of the actual grid.

Member Data Documentation

template<TElement >
int IG::Num::StructuredField2d< TElement >::_d1 [private]
template<TElement >
int IG::Num::StructuredField2d< TElement >::_d2 [private]

Property Documentation

template<TElement >
TElement IG::Num::StructuredField2d< TElement >::this[int i1, int i2] [get, set]

Returns element of the field at specified indices.

Parameters:
i1The first index of an element in a 2D array (least significant).
i2The second index of an element in a 2D array.

Indexing of elements of the structured 2D field has changed in 2011. Now the first index (in x direction) is least significant and the last one is most significant, opposite to notation in matrices. $A Igor Jan08 Oct11;

Reimplemented from IG::Num::Field< TElement >.

template<TElement >
int IG::Num::StructuredField2d< TElement >::Dim1 [get, set]

Returns the first dimenson of the structured mesh (number of mesh points in the first direction). Dependencies are handled by a call to the SetDimensions method when the property is set.

template<TElement >
int IG::Num::StructuredField2d< TElement >::Dim2 [get, set]

Returns the second dimenson of the structured mesh (number of mesh points in the second direction). Dependencies are handled by a call to the SetDimensions method when the property is set.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations Properties Events