void WaveShaperNode::setOversample(OverSampleType type) { ASSERT(isMainThread()); // Synchronize with any graph changes or changes to channel configuration. AudioContext::AutoLocker contextLocker(context()); waveShaperProcessor()->setOversample(processorType(type)); }
void coupledInfo<MeshType>::setField ( const wordList& fieldNames, const dictionary& fieldDicts, const label internalSize, PtrList<GeomField>& fields ) const { typedef typename GeomField::InternalField InternalField; typedef typename GeomField::PatchFieldType PatchFieldType; typedef typename GeomField::GeometricBoundaryField GeomBdyFieldType; typedef typename GeomField::DimensionedInternalField DimInternalField; // Size up the pointer list fields.setSize(fieldNames.size()); // Define patch type names, assumed to be // common for volume and surface fields word emptyType(emptyPolyPatch::typeName); word processorType(processorPolyPatch::typeName); forAll(fieldNames, i) { // Create and map the patch field values label nPatches = subMesh().boundary().size(); // Create field parts PtrList<PatchFieldType> patchFields(nPatches); // Read dimensions dimensionSet dimSet ( fieldDicts.subDict(fieldNames[i]).lookup("dimensions") ); // Read the internal field InternalField internalField ( "internalField", fieldDicts.subDict(fieldNames[i]), internalSize ); // Create dummy types for initial field creation forAll(patchFields, patchI) { if (patchI == (nPatches - 1)) { // Artificially set last patch patchFields.set ( patchI, PatchFieldType::New ( emptyType, subMesh().boundary()[patchI], DimInternalField::null() ) ); } else { patchFields.set ( patchI, PatchFieldType::New ( PatchFieldType::calculatedType(), subMesh().boundary()[patchI], DimInternalField::null() ) ); } } // Create field with dummy patches fields.set ( i, new GeomField ( IOobject ( fieldNames[i], subMesh().time().timeName(), subMesh(), IOobject::NO_READ, IOobject::NO_WRITE, false ), subMesh(), dimSet, internalField, patchFields ) ); // Set correct references for patch internal fields, // and fetch values from the supplied geometric field dictionaries GeomBdyFieldType& bf = fields[i].boundaryField(); forAll(bf, patchI) { if (patchI == (nPatches - 1)) { // Artificially set last patch bf.set ( patchI, PatchFieldType::New ( emptyType, subMesh().boundary()[patchI], fields[i].dimensionedInternalField() ) ); } else if (isA<processorPolyPatch>(subMesh().boundary()[patchI].patch())) { bf.set ( patchI, PatchFieldType::New ( processorType, subMesh().boundary()[patchI], fields[i].dimensionedInternalField() ) ); } else { bf.set ( patchI, PatchFieldType::New ( subMesh().boundary()[patchI], fields[i].dimensionedInternalField(), fieldDicts.subDict ( fieldNames[i] ).subDict("boundaryField").subDict ( subMesh().boundary()[patchI].name() ) ) ); } } }
tmp<GeomField> coupledInfo<MeshType>::subSetField ( const GeomField& f, const ZeroType& zeroValue, const labelList& internalMapper ) const { typedef typename GeomField::InternalField InternalField; typedef typename GeomField::PatchFieldType PatchFieldType; typedef typename GeomField::GeometricBoundaryField GeomBdyFieldType; typedef typename GeomField::DimensionedInternalField DimInternalField; // Create and map the internal-field values InternalField internalField(f.internalField(), internalMapper); // Create and map the patch field values label nPatches = subMesh().boundary().size(); PtrList<PatchFieldType> patchFields(nPatches); // Define patch type names, assumed to be // common for volume and surface fields word emptyType(emptyPolyPatch::typeName); word processorType(processorPolyPatch::typeName); // Create dummy types for initial field creation forAll(patchFields, patchI) { if (patchI == (nPatches - 1)) { // Artificially set last patch patchFields.set ( patchI, PatchFieldType::New ( emptyType, subMesh().boundary()[patchI], DimInternalField::null() ) ); } else { patchFields.set ( patchI, PatchFieldType::New ( PatchFieldType::calculatedType(), subMesh().boundary()[patchI], DimInternalField::null() ) ); } } // Create new field from pieces tmp<GeomField> subFld ( new GeomField ( IOobject ( "subField_" + f.name(), subMesh().time().timeName(), subMesh(), IOobject::NO_READ, IOobject::NO_WRITE, false ), subMesh(), f.dimensions(), internalField, patchFields ) ); // Set correct references for patch internal fields, // and map values from the supplied geometric field GeomBdyFieldType& bf = subFld().boundaryField(); forAll(bf, patchI) { if (patchI == (nPatches - 1)) { // Artificially set last patch bf.set ( patchI, PatchFieldType::New ( emptyType, subMesh().boundary()[patchI], subFld().dimensionedInternalField() ) ); } else if (isA<processorPolyPatch>(subMesh().boundary()[patchI].patch())) { bf.set ( patchI, PatchFieldType::New ( processorType, subMesh().boundary()[patchI], subFld().dimensionedInternalField() ) ); // Avoid dealing with uninitialised values // by artificially assigning to zero bf[patchI] == zeroValue; } else { bf.set ( patchI, PatchFieldType::New ( f.boundaryField()[patchI], subMesh().boundary()[patchI], subFld().dimensionedInternalField(), subMeshMapper(*this, patchI) ) ); } } return subFld; }