]> SALOME platform Git repositories - tools/medcoupling.git/blob - doc/user/doxygen/doxfiles/reference/fields/MEDCouplingFields.dox
Salome HOME
7th step - Update doc.
[tools/medcoupling.git] / doc / user / doxygen / doxfiles / reference / fields / MEDCouplingFields.dox
1 /*!
2 \page MEDCouplingFieldsPage Fields
3
4 [TOC]
5
6 \section MEDCouplingFields Field concept
7
8 A field in MEDCoupling point of view, is a structure that allows to
9 store a discretization of a physical value on a defined discretized spatial and
10 possibly temporal support.
11
12 The spatial support is a \ref meshes "mesh".
13 A field is lying on an entity that will be specified by the spatial
14 discretization of the field. For example a field on node will lie on
15 all nodes of its mesh.
16
17 A field on cell will lie on all cells of its mesh.
18
19 Fields in MEDCoupling follow the two following rules :
20
21 - A field will lie on \b ALL entities of its spatial support (\ref meshes "mesh").
22 - A field has \b only \b one spatial support (\ref meshes "mesh") on its temporal support.
23
24 The main properties of a field are :
25
26 - name
27 - spatial support which is a \ref meshes "mesh"
28 - a \ref MEDCouplingSpatialDisc "spatial discretization"
29 - a description of intrinsic nature of the values of field (see \ref NatureOfField). This is important for conservative interpolation (see \ref TableNatureOfField).
30 - a temporal discretization that specifies, if it exists, the time interval on which the field is covering, and how.
31 - number of components
32
33 This definition of field in MEDCoupling allows an instance of field to
34 know at any point inside its spatial-temporal support the value.
35
36 The class that incarnates the concept described above is : \ref MEDCoupling::MEDCouplingFieldDouble.
37
38 Some of most important implemented methods are :
39
40 - \ref MEDCoupling::MEDCouplingFieldDouble::getNumberOfComponents "getNumberOfComponents"
41 - \ref MEDCoupling::MEDCouplingFieldDouble::getValueOn "getValueOn"
42 - \ref MEDCoupling::MEDCouplingFieldDouble::applyFunc "applyFunc"
43 - \ref MEDCoupling::MEDCouplingFieldDouble::AddFields "cross instances operations"
44 \section MEDCouplingSpatialDisc Spatial discretization concept
45
46 This is the concept that makes the link, independently from temporal
47 discretization, between the field and its spatial support (\ref meshes "mesh"). This
48 concept allows the field to make a check and interpretation of an
49 array of values given a spatial support (\ref meshes "mesh").
50
51 The abstract class that incarnates the concept is : \ref MEDCoupling::MEDCouplingFieldDiscretization.
52
53 The most important pure virtual methods are :
54
55 - \ref MEDCoupling::MEDCouplingFieldDiscretization::getNumberOfTuples "getnumberOfTuples"
56 - \ref MEDCoupling::MEDCouplingFieldDiscretization::getValueOn "getValueOn"
57 - \ref MEDCoupling::MEDCouplingFieldDiscretization::getMeasureField "getMeasureField"
58
59 \section MEDCouplingTemporalDisc Temporal discretization concept
60
61 This information allows, independently from spatial discretization, to
62 associate a time interval, if it exists, on which the field will be
63 defined. This concept is able to give the value at any time of
64 the definition interval (if any).
65
66 The abstract class \ref MEDCoupling::MEDCouplingTimeDiscretization
67 incarnates this described concept.
68
69 This classes and its subclasses are responsible in storing the arrays
70 of the aggregating field.
71
72 The most important methods are :
73
74 - \ref MEDCoupling::MEDCouplingTimeDiscretization::setTime "setTime" and \ref MEDCoupling::MEDCouplingTimeDiscretization::getTime "getTime"
75 - \ref MEDCoupling::MEDCouplingTimeDiscretization::getArray "getArray" and \ref MEDCoupling::MEDCouplingTimeDiscretization::setArray "setArray"
76 - \ref MEDCoupling::MEDCouplingTimeDiscretization::getArraysForTime "getArraysForTime"
77 - \ref MEDCoupling::MEDCouplingTimeDiscretization::getValueForTime "getValueForTime"
78
79 \section MEDCouplingFirstSteps3 Building a field from scratch
80
81 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" ).
82
83 \subsection MEDCouplingFirstSteps3OnCellsNoTS  Create a tensor field with 9 components on cells with no time step
84
85 \ref medcouplingcppexamplesFieldDoubleBuild1 "Here the C++ implementation."
86
87 \ref medcouplingpyexamplesFieldDoubleBuild1 "Here the Python implementation."
88
89 \subsection MEDCouplingFirstSteps3OnNodesNoTS Create a scalar field on nodes with no time step
90
91 \ref medcouplingcppexamplesFieldDoubleBuild2 "Here the C++ implementation."
92
93 \ref medcouplingpyexamplesFieldDoubleBuild2 "Here the Python implementation."
94
95 \subsection MEDCouplingFirstSteps3OnCellsWTS Create a 2 components-vector field on cells with one time step and no interval
96
97 \ref medcouplingcppexamplesFieldDoubleBuild3 "Here the C++ implementation."
98
99 \ref medcouplingpyexamplesFieldDoubleBuild3 "Here the Python implementation."
100
101 \subsection MEDCouplingFirstSteps3OnCellsCTI Create a 3 components-vector field on nodes with a time interval where field remains constant on this time interval
102
103 \ref medcouplingcppexamplesFieldDoubleBuild4 "Here the C++ implementation."
104
105 \ref medcouplingpyexamplesFieldDoubleBuild4 "Here the Python implementation."
106
107 \section MEDCouplingSecondStep0 Operations on Fields
108
109 Here we will make the assumption that an instance of \ref MEDCoupling::MEDCouplingMesh "MEDCouplingMesh"
110 called \c mesh has been created with spaceDim==2.
111
112 \ref medcouplingcppexamplesFieldDoubleBuild5 "Here a C++ example of more advanced use of MEDCouplingFieldDouble instances".
113
114 \ref medcouplingpyexamplesFieldDoubleBuild5 "Here a Python example of more advanced use of MEDCouplingFieldDouble instances".
115
116 */
117
118  LocalWords:  discretization