![]() |
FemProcess
The GeMA Fem Process Plugin
|
The real implementation of the GmpFemPhysicsCommonLuaMaterial class methods. See comments on that class. More...
#include <gmpFemPhysicsCommonLuaMaterial.h>

Classes | |
| class | CallData |
| The auxiliar class used to store prepared user method call data. More... | |
| struct | CallDataFunctions |
| An aux structure storing how to get / set data for input data sub-tables. More... | |
Public Types | |
| enum | CallDataType { CDT_PROPERTY, CDT_NODEATTR, CDT_GAUSSATTR, CDT_GEOMETRY, CDT_USER, CDT_NUMTYPES } |
| Stored data type for input data sub-tables. More... | |
| enum | GeometryFields { GF_ELEMENT_ID, GF_ELEMENT, GF_TYPE, GF_IP, GF_COORD, GF_CLENGTH, GF_CDIM, GF_NODE_AC, GF_NODE_COORD, GF_N } |
| typedef QVariant(* | GetFieldDataT) (QString field, const void *context, const GmElement *e, int ip, const GmVector *coord, const GmLogCategory &logger) |
| Type for the function used to get derived class values exported to an input data sub-table. Should return an invalid QVariant on invalid fields. If a table of values needs to be reported, the function should return a QVariantList with the set of values. | |
| typedef bool(* | SetFieldDataT) (QString field, const void *context, const GmElement *e, int ip, const QVariant &v) |
| Type for the function used to set derived class values imported from an output data sub-table. Should return false on invalid fields. | |
Public Member Functions | |
| GmpFemPhysicsCommonLuaMaterialImp (const GmPluginData *pdata, GmpFemPhysicsCommonMaterial *mat) | |
| Common Lua material constructor. Receives the PluginData object with the material especification plus its type name and index in order for a class to be able to handle multiple types. | |
| ~GmpFemPhysicsCommonLuaMaterialImp () | |
| Virtual destructor. | |
| const QVariantMap * | materialMetaDataMap () |
| Builds the metadata map returned by every GmpFemPhysicsCommonMaterial object based on the plugin data. | |
| bool | checkLoadedData (const GmElement *e) const |
| CallData * | prepareUserMethodCall (QString fname, const GmElement *e, int ip, const GmVector *coord, const char *userSubTable=NULL, GetFieldDataT userGetF=NULL, SetFieldDataT userSetF=NULL, const void *userContext=NULL) const |
| Prepares the CallData object for a later call to the given user method, for the given set of element coordinates. If the field does not exist in the plugin data, returns NULL. If an user sub-table name is given, a table with that name will be added to the input data table, having the setter and getter functions used to retrieve / store data. The store function can be NULL if the value can only be queried. The user context parameter is passed through to the given functions. | |
| const GmPluginData * | pluginData () const |
| Returns the associated plugin data object. | |
Static Public Member Functions | |
| static QVariant | propertyAccessorValueToVariant (GmCellAccessor *ac, const GmElement *e, int ip, const GmVector *coord, const GmLogCategory &logger) |
| Retrieves the given accessor value at the given point and converts it to a QVariant, storing either a double value, for scalar accessors, or a pointer to a newly created GmLuaMatrix object for vector or matrix values. | |
| static QVariant | nodeAccessorValueToVariant (GmValueAccessor *ac, GmValueAccessor *coordAc, const GmElement *e, int ip, const GmVector *coord, GmInterpolatorType interpType, QVariant interpParam, const GmLogCategory &logger) |
| Retrieves the element node values from the given accessor, interpolates the value at the given point and converts it to a QVariant, storing either a double value, for scalar accessors, or a pointer to a newly created GmLuaMatrix object for vector or matrix values. If the interpolation method is GM_NO_INTERPOLATOR, the QVariant contains a table with the values for each cell node. | |
| static QVariant | gaussAccessorValueToVariant (GmGaussAccessor *ac, const GmElement *e, int ip, const GmVector *coord, const GmLogCategory &logger) |
| Retrieves the given accessor value at the given point and converts it to a QVariant, storing either a double value, for scalar accessors, or a pointer to a newly created GmLuaMatrix object for vector or matrix values. | |
| static void | setGaussAccessorValueFromVariant (GmGaussAccessor *ac, const GmElement *e, int ip, const QVariant &v) |
| Given a QVariant value that can be either a scalar or a pointer to a GmLuaMatrix object, depending on the accessor value type, sets that value on the accessor. | |
| static bool | fillMatrixFromVariant (GmMatrix &mat, int nlin, int ncol, const QVariant &v, QString &err) |
| Fills the given matrix contents with the value of the GmLuaMatrix stored in the given variant value. If the variant is NULL or has a dimension different from the given number of lines and columns, returns false and fills err, keeping mat unchanged. | |
Private Member Functions | |
| void | loadTableData (QString field, QMap< QString, int > &fieldMap, QVector< QPair< GmInterpolatorType, QVariant >> *interpData=NULL, bool savedGaussAttr=false) |
| Loads the data from the given plugin data field (properties, nodeAttributes or gaussAttributes) into the metadata map. | |
| void | loadEntryData (int index, const QVariantMap &data, GmpFemPhysicsCommon::ValueList &list, QMap< QString, int > &map) |
| Loads a single data entry into list, also filling map with its name x index maping. | |
| QList< GmpFemPhysicsCommon::ValueType > | parseDimField (const QVariant &v) const |
| Parses a dimension field for loadEntryData() | |
| GmpFemPhysicsCommon::RequiredIf | parseRequiredField (const QVariant &v) const |
| Parses a require field for loadEntryData() | |
Static Private Member Functions | |
| static QVariant | getPropertyValue (QString field, const void *context, const GmElement *e, int ip, const GmVector *coord, const GmLogCategory &logger) |
| Returns the property value associated with the given field, at the given coordinate, as a variant. Returns an empty variant if the field is unknown. | |
| static QVariant | getNodeAttrValue (QString field, const void *context, const GmElement *e, int ip, const GmVector *coord, const GmLogCategory &logger) |
| Returns the interpolated node attribute value associated with the given field, at the given coordinate, as a variant. Returns an empty variant if the field is unknown. | |
| static QVariant | getGaussAttrValue (QString field, const void *context, const GmElement *e, int ip, const GmVector *coord, const GmLogCategory &logger) |
| Returns the gauss attribute value associated with the given field, at the given coordinate, as a variant. Returns an empty variant if the field is unknown. | |
| static bool | setGaussAttrValue (QString field, const void *context, const GmElement *e, int ip, const QVariant &v) |
| Updates the gauss attribute value associeated with the given field, at the given ip. Returns false if the field is unknown. | |
| static QVariant | getGeometryValue (QString field, const void *context, const GmElement *e, int ip, const GmVector *coord, const GmLogCategory &logger) |
| Returns the geometry value associated with the given field, at the given coordinate, as a variant. Returns an empty variant if the field is unknown. | |
| static QVariant | variantListToOnStackLuaTable (LuaEnv *env, const QVariantList &v) |
| Transforms the received QVariant List on a Lua table, stored on the top of the stack. Returns the LuaTable object as a variant. | |
Private Attributes | |
| const GmPluginData * | _pdata |
| The associated plugin data object. | |
| GmpFemPhysicsCommonMaterial * | _mat |
| The material that is implemented by this object. | |
| QVariantMap * | _map |
| The metadata map built based on _pdata. | |
| QMap< QString, int > | _propertyIndexMap |
| Map associating property names in _map with their accessor indices. | |
| QMap< QString, int > | _nodeAttrIndexMap |
| Map associating node attribute names in _map with their accessor indices. | |
| QMap< QString, int > | _gaussAttrIndexMap |
| Map associating Gauss attribute names in _map with their accessor indices. | |
| QVector< QPair< GmInterpolatorType, QVariant > > | _nodeAttrInterpMode |
| CallDataFunctions | _propertyCallFunctions |
| A vector with the interpolation options for each attribute stored in _nodeAttrIndexMap, ordered by index. More... | |
| CallDataFunctions | _nodeAttrCallFunctions |
| The set of functions for getting node attribute values. Will have a NULL name if _nodeAttrIndexMap is empty. | |
| CallDataFunctions | _gaussAttrCallFunctions |
| The set of functions for getting/setting gauss attribute values. Will have a NULL name if _gaussAttrIndexMap is empty. | |
| CallDataFunctions | _geometryCallFunctions |
| The set of functions for getting geometry values. | |
| GmTLS< CallData, true > | _callData |
| The per thread set of CallData objects. | |
| GmTLS< QSet< QString >, true > | _fieldCacheData [CDT_NUMTYPES] |
| The per thread cache info on referenced input data sub-table fields, per sub-table type. | |
Static Private Attributes | |
| static QMap< QString, int > | _geometryFieldsMap |
| Map translating geometry field names into the GeometryFields enum. More... | |
The real implementation of the GmpFemPhysicsCommonLuaMaterial class methods. See comments on that class.
Stored data type for input data sub-tables.
Map translating geometry field names into the GeometryFields enum.
< Maps geometry field names used in the user functions to their internal GeometryFields id
|
private |
A vector with the interpolation options for each attribute stored in _nodeAttrIndexMap, ordered by index.
The set of functions for getting cell property values. Will have a NULL name if _propertyIndexMap is empty
1.8.15