/*! \page MEDCouplingFieldsPage Fields [TOC] \section MEDCouplingFields Field concept A field in MEDCoupling point of view, is a structure that allows to store a discretization of a physical value on a defined discretized spatial and possibly temporal support. The spatial support is a \ref meshes "mesh". A field is lying on an entity that will be specified by the spatial discretization of the field. For example a field on node will lie on all nodes of its mesh. A field on cell will lie on all cells of its mesh. Fields in MEDCoupling follow the two following rules : - A field will lie on \b ALL entities of its spatial support (\ref meshes "mesh"). - A field has \b only \b one spatial support (\ref meshes "mesh") on its temporal support. The main properties of a field are : - name - spatial support which is a \ref meshes "mesh" - a \ref MEDCouplingSpatialDisc "spatial discretization" - a description of intrinsic nature of the values of field (see \ref NatureOfField). This is important for conservative interpolation (see \ref TableNatureOfField). - a temporal discretization that specifies, if it exists, the time interval on which the field is covering, and how. - number of components This definition of field in MEDCoupling allows an instance of field to know at any point inside its spatial-temporal support the value. The class that incarnates the concept described above is : \ref ParaMEDMEM::MEDCouplingFieldDouble. Some of most important implemented methods are : - \ref ParaMEDMEM::MEDCouplingFieldDouble::getNumberOfComponents "getNumberOfComponents" - \ref ParaMEDMEM::MEDCouplingFieldDouble::getValueOn "getValueOn" - \ref ParaMEDMEM::MEDCouplingFieldDouble::applyFunc "applyFunc" - \ref ParaMEDMEM::MEDCouplingFieldDouble::AddFields "cross instances operations" \section MEDCouplingSpatialDisc Spatial discretization concept This is the concept that makes the link, independently from temporal discretization, between the field and its spatial support (\ref meshes "mesh"). This concept allows the field to make a check and interpretation of an array of values given a spatial support (\ref meshes "mesh"). The abstract class that incarnates the concept is : \ref ParaMEDMEM::MEDCouplingFieldDiscretization. The most important pure virtual methods are : - \ref ParaMEDMEM::MEDCouplingFieldDiscretization::getNumberOfTuples "getnumberOfTuples" - \ref ParaMEDMEM::MEDCouplingFieldDiscretization::getValueOn "getValueOn" - \ref ParaMEDMEM::MEDCouplingFieldDiscretization::getMeasureField "getMeasureField" \section MEDCouplingTemporalDisc Temporal discretization concept This information allows, independently from spatial discretization, to associate a time interval, if it exists, on which the field will be defined. This concept is able to give the value at any time of the definition interval (if any). The abstract class \ref ParaMEDMEM::MEDCouplingTimeDiscretization incarnates this described concept. This classes and its subclasses are responsible in storing the arrays of the aggregating field. The most important methods are : - \ref ParaMEDMEM::MEDCouplingTimeDiscretization::setTime "setTime" and \ref ParaMEDMEM::MEDCouplingTimeDiscretization::getTime "getTime" - \ref ParaMEDMEM::MEDCouplingTimeDiscretization::getArray "getArray" and \ref ParaMEDMEM::MEDCouplingTimeDiscretization::setArray "setArray" - \ref ParaMEDMEM::MEDCouplingTimeDiscretization::getArraysForTime "getArraysForTime" - \ref ParaMEDMEM::MEDCouplingTimeDiscretization::getValueForTime "getValueForTime" \section MEDCouplingFirstSteps3 Building a field from scratch Here we will make the assumption that an instance of \c MEDCouplingMesh called \c mesh has been created ( to know more about mesh creation \ref MEDCouplingUMeshStdBuild "click here" ). \subsection MEDCouplingFirstSteps3OnCellsNoTS Create a tensor field with 9 components on cells with no time step \ref medcouplingcppexamplesFieldDoubleBuild1 "Here the C++ implementation." \ref medcouplingpyexamplesFieldDoubleBuild1 "Here the Python implementation." \subsection MEDCouplingFirstSteps3OnNodesNoTS Create a scalar field on nodes with no time step \ref medcouplingcppexamplesFieldDoubleBuild2 "Here the C++ implementation." \ref medcouplingpyexamplesFieldDoubleBuild2 "Here the Python implementation." \subsection MEDCouplingFirstSteps3OnCellsWTS Create a 2 components-vector field on cells with one time step and no interval \ref medcouplingcppexamplesFieldDoubleBuild3 "Here the C++ implementation." \ref medcouplingpyexamplesFieldDoubleBuild3 "Here the Python implementation." \subsection MEDCouplingFirstSteps3OnCellsCTI Create a 3 components-vector field on nodes with a time interval where field remains constant on this time interval \ref medcouplingcppexamplesFieldDoubleBuild4 "Here the C++ implementation." \ref medcouplingpyexamplesFieldDoubleBuild4 "Here the Python implementation." \section MEDCouplingSecondStep0 Operations on Fields Here we will make the assumption that an instance of \ref ParaMEDMEM::MEDCouplingMesh "MEDCouplingMesh" called \c mesh has been created with spaceDim==2. \ref medcouplingcppexamplesFieldDoubleBuild5 "Here a C++ example of more advanced use of MEDCouplingFieldDouble instances". \ref medcouplingpyexamplesFieldDoubleBuild5 "Here a Python example of more advanced use of MEDCouplingFieldDouble instances". */ LocalWords: discretization