Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 template<class Type>
00027 void Foam::explicitSource::addSources
00028 (
00029 Field<Type>& fieldSource,
00030 Type& data
00031 ) const
00032 {
00033 forAll(this->cells(), i)
00034 {
00035 fieldSource[this->cells()[i]] = data/volSource_[i];
00036 }
00037 }
00038
00039
00040 template <class Type>
00041 void Foam::explicitSource::addField
00042 (
00043 HashTable<Type>& fields,
00044 const wordList& fieldTypes,
00045 const wordList& fieldNames,
00046 const dictionary& fieldDataDict
00047 )
00048 {
00049 typedef GeometricField<Type, fvPatchField, volMesh> geometricField;
00050
00051 forAll (fieldTypes, fieldI)
00052 {
00053 word fieldName = fieldNames[fieldI];
00054 word fieldType = fieldTypes[fieldI];
00055
00056 if
00057 (
00058 (
00059 fieldType
00060 == GeometricField<Type, fvPatchField, volMesh>::typeName
00061 ) &&
00062 (
00063 this->mesh().foundObject<geometricField>(fieldName)
00064 )
00065 )
00066 {
00067 Type fieldValue = fieldDataDict.lookupOrDefault<Type>
00068 (
00069 fieldName,
00070 pTraits<Type>::zero
00071 );
00072
00073 fields.insert(fieldName, fieldValue);
00074 }
00075 }
00076 }
00077
00078
00079