70 if (
m_config[
"realmodetoimag"].as<string>().compare(
"NotSet"))
73 m_f->m_variables, sinmode);
76 for (
int i = 0; i <
m_f->m_data.size(); ++i)
80 m_f->m_fielddef[i]->m_basis[2] ==
82 "This module is only for fourier Half modes");
85 m_f->m_fielddef[i]->m_homogeneousZIDs.resize(2);
86 m_f->m_fielddef[i]->m_homogeneousZIDs[0] = 2;
87 m_f->m_fielddef[i]->m_homogeneousZIDs[1] = 3;
89 int nelemts =
m_f->m_fielddef[i]->m_elementIDs.size();
90 if (
m_f->m_fielddef[i]->m_uniOrder)
92 m_f->m_fielddef[i]->m_numModes[2] = 4;
96 for (
int e = 0; e < nelemts; ++e)
98 m_f->m_fielddef[i]->m_numModes[3 * e + 2] = 4;
106 int ndata =
m_f->m_data[i].size();
107 vector<NekDouble> data =
m_f->m_data[i];
108 m_f->m_data[i].resize(2 * ndata);
109 int offset = 0, count = 0;
110 for (
size_t n = 0; n <
m_f->m_fielddef[i]->m_fields.size(); ++n)
113 m_f->m_fielddef[i]->m_shapeType,
114 m_f->m_fielddef[i]->m_numModes[0],
115 m_f->m_fielddef[i]->m_numModes[1]);
116 for (
int e = 0; e < nelemts; ++e)
118 if (!
m_f->m_fielddef[i]->m_uniOrder)
122 m_f->m_fielddef[i]->m_shapeType,
123 m_f->m_fielddef[i]->m_numModes[3 * e],
124 m_f->m_fielddef[i]->m_numModes[3 * e + 1]);
126 if (sinmode.count(n))
128 for (
int l = 0; l < datalen; ++l)
130 m_f->m_data[i][count++] = 0.;
132 for (
int l = 0; l < datalen; ++l)
134 m_f->m_data[i][count++] = -data[offset + l];
139 for (
int l = 0; l < datalen; ++l)
141 m_f->m_data[i][count++] = data[offset + l];
143 for (
int l = 0; l < datalen; ++l)
145 m_f->m_data[i][count++] = 0.;