File: USERD_get_var_value_at_specific.H

package info (click to toggle)
openfoam 4.1%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 163,028 kB
  • ctags: 58,990
  • sloc: cpp: 830,760; sh: 10,227; ansic: 8,215; xml: 745; lex: 437; awk: 194; sed: 91; makefile: 77; python: 18
file content (71 lines) | stat: -rw-r--r-- 1,674 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//======================================================================
int USERD_get_var_value_at_specific
(
    int which_var,
    int which_node_or_elem,
    int which_part,
    int which_elem_type,
    int time_step,
    float values[3],
    int imag_data
)
{
#ifdef ENSIGHTDEBUG
    Info<< "Entering: USERD_get_var_value_at_specific" << endl
        << flush;
#endif
    // Not sure if it is 0 or 1 based

    label nNode = which_node_or_elem;
    label nVar = which_var - 1;

    fvMesh& mesh = *meshPtr;

    if (nVar < Num_variables - nSprayVariables)
    {
        Time& runTime = *runTimePtr;

        IOobject fieldObject
        (
            fieldNames[var2field[nVar]],
            runTime.timeName(),
            mesh,
            IOobject::MUST_READ,
            IOobject::NO_WRITE
        );

        if (isScalar[nVar])
        {
            volScalarField scalarField(fieldObject,mesh);
            values[0] = scalarField[nNode];
        }
        else if (isVector[nVar])
        {
            volVectorField vectorField(fieldObject,mesh);
            values[0] = vectorField[nNode].x();
            values[1] = vectorField[nNode].y();
            values[2] = vectorField[nNode].z();
        }
        else
        {
            Info<< "ERROR in USERD_get_variable_value_at_specific. "
                << "No available variable???"
                << endl;
            return Z_ERR;
        }
    }
    else
    {
        Info<< "This functionality is not implemented yet."
            << endl;
        return Z_ERR;
    }


#ifdef ENSIGHTDEBUG
    Info<< "Leaving: USERD_get_var_value_at_specific" << endl
        << flush;
#endif
    return Z_OK;
}