COMP: adjust makePatchTypeField to handle non-template BCs

This commit is contained in:
Mark Olesen
2010-12-15 09:26:40 +01:00
parent aaa7cd109f
commit 8c954fd45f

View File

@ -495,61 +495,86 @@ public:
#endif
#define makePatchTypeFieldTypeName(type) \
\
defineNamedTemplateTypeNameAndDebug(type, 0);
#define makePatchFieldsTypeName(type) \
\
makePatchTypeFieldTypeName(type##FvPatchScalarField); \
makePatchTypeFieldTypeName(type##FvPatchVectorField); \
makePatchTypeFieldTypeName(type##FvPatchSphericalTensorField); \
makePatchTypeFieldTypeName(type##FvPatchSymmTensorField); \
makePatchTypeFieldTypeName(type##FvPatchTensorField);
#define makePatchTypeField(PatchTypeField, typePatchTypeField) \
\
defineNamedTemplateTypeNameAndDebug(typePatchTypeField, 0); \
\
addToRunTimeSelectionTable \
( \
PatchTypeField, typePatchTypeField, patch \
); \
\
addToRunTimeSelectionTable \
( \
PatchTypeField, \
typePatchTypeField, \
patchMapper \
); \
\
addToRunTimeSelectionTable \
( \
PatchTypeField, typePatchTypeField, dictionary \
);
#define makePatchTypeFieldTypeName(type) \
defineNamedTemplateTypeNameAndDebug(type, 0)
#define makePatchFields(type) \
\
makePatchTypeField(fvPatchScalarField, type##FvPatchScalarField); \
makePatchTypeField(fvPatchVectorField, type##FvPatchVectorField); \
makePatchTypeField \
( \
fvPatchSphericalTensorField, \
type##FvPatchSphericalTensorField \
); \
makePatchTypeField(fvPatchSymmTensorField, type##FvPatchSymmTensorField); \
makePatchTypeField(fvPatchTensorField, type##FvPatchTensorField);
#define makePatchFieldsTypeName(type) \
defineNamedTemplateTypeNameAndDebug(type##FvPatchScalarField, 0); \
defineNamedTemplateTypeNameAndDebug(type##FvPatchVectorField, 0); \
defineNamedTemplateTypeNameAndDebug(type##FvPatchSphericalTensorField, 0);\
defineNamedTemplateTypeNameAndDebug(type##FvPatchSymmTensorField, 0); \
defineNamedTemplateTypeNameAndDebug(type##FvPatchTensorField, 0);
#define makePatchTypeFieldTypedefs(type) \
\
typedef type##FvPatchField<scalar> type##FvPatchScalarField; \
typedef type##FvPatchField<vector> type##FvPatchVectorField; \
typedef type##FvPatchField<sphericalTensor> \
type##FvPatchSphericalTensorField; \
typedef type##FvPatchField<symmTensor> type##FvPatchSymmTensorField; \
typedef type##FvPatchField<tensor> type##FvPatchTensorField;
#define addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
addToRunTimeSelectionTable \
( \
PatchTypeField, \
typePatchTypeField, \
patch \
); \
addToRunTimeSelectionTable \
( \
PatchTypeField, \
typePatchTypeField, \
patchMapper \
); \
addToRunTimeSelectionTable \
( \
PatchTypeField, \
typePatchTypeField, \
dictionary \
);
// for non-templated patch fields
#define makeNonTemplatedPatchTypeField(PatchTypeField, typePatchTypeField) \
defineTypeNameAndDebug(typePatchTypeField, 0); \
addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
// for templated patch fields
#define makePatchTypeField(PatchTypeField, typePatchTypeField) \
defineNamedTemplateTypeNameAndDebug(typePatchTypeField, 0); \
addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
#define makePatchFields(type) \
makePatchTypeField \
( \
fvPatchScalarField, \
type##FvPatchScalarField \
); \
makePatchTypeField \
( \
fvPatchVectorField, \
type##FvPatchVectorField \
); \
makePatchTypeField \
( \
fvPatchSphericalTensorField, \
type##FvPatchSphericalTensorField \
); \
makePatchTypeField \
( \
fvPatchSymmTensorField, \
type##FvPatchSymmTensorField \
); \
makePatchTypeField \
( \
fvPatchTensorField, \
type##FvPatchTensorField \
);
#define makePatchTypeFieldTypedefs(type) \
typedef type##FvPatchField<scalar> type##FvPatchScalarField; \
typedef type##FvPatchField<vector> type##FvPatchVectorField; \
typedef type##FvPatchField<sphericalTensor> \
type##FvPatchSphericalTensorField; \
typedef type##FvPatchField<symmTensor> type##FvPatchSymmTensorField; \
typedef type##FvPatchField<tensor> type##FvPatchTensorField;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //