50 ModuleKey ProcessJacobianEnergy::className =
53 ProcessJacobianEnergy::create,
54 "Show high frequency energy of Jacobian.");
60 "how many top modes to keep ");
71 if(
m_f->m_comm->GetRank() == 0)
73 cout <<
"ProcessJacobianEnergy: Processing Jacobian..." << endl;
81 for(
int i =0; i <
m_f->m_exp[0]->GetExpSize(); ++i)
86 int ncoeffs = Elmt->GetNcoeffs();
87 int nquad = Elmt->GetTotPoints();
88 int coeffoffset =
m_f->m_exp[0]->GetCoeff_Offset(i);
91 Elmt->GetMetricInfo()->GetJac(Elmt->GetPointsKeys());
106 NekDouble jacmeasure = jacmax/jacmin -1.0;
114 Elmt->FwdTrans(phys,tmp = coeffs + coeffoffset);
117 std::vector<LibUtilities::FieldDefinitionsSharedPtr> FieldDef
118 =
m_f->m_exp[0]->GetFieldDefinitions();
119 std::vector<std::vector<NekDouble> > FieldData(FieldDef.size());
121 for (
int i = 0; i < FieldDef.size(); ++i)
123 FieldDef[i]->m_fields.push_back(
"JacobianEnergy");
124 m_f->m_exp[0]->AppendFieldData(FieldDef[i], FieldData[i]);
127 m_f->m_fielddef = FieldDef;
128 m_f->m_data = FieldData;
pair< ModuleType, string > ModuleKey
T Vmax(int n, const T *x, const int incx)
Return the maximum element in x – called vmax to avoid conflict with max.
T Vmin(int n, const T *x, const int incx)
Return the minimum element in x - called vmin to avoid conflict with min.
void Fill(int n, const T alpha, T *x, const int incx)
Fill a vector with a constant value.
map< string, ConfigOption > m_config
List of configuration values.
FieldSharedPtr m_f
Field object.
boost::shared_ptr< Field > FieldSharedPtr
Represents a command-line configuration option.
virtual ~ProcessJacobianEnergy()
Geometry is straight-sided with constant geometric factors.
boost::shared_ptr< StdExpansion > StdExpansionSharedPtr
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Geometry is curved or has non-constant factors.
ModuleFactory & GetModuleFactory()
Abstract base class for processing modules.
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, tDescription pDesc="")
Register a class with the factory.