void Foam::fv::matrixChangeBeforeFvOption::setResidual( const fvMatrix<T>& matrix, autoPtr<GeometricField<T,fvPatchField,volMesh> >& val ) { Info << this->name() << " setting residual for " << matrix.psi().name() << " to " << this->fieldName() << endl; if(!val.valid()) { val.set( new GeometricField<T,fvPatchField,volMesh>( IOobject( this->fieldName(), matrix.psi().mesh().time().timeName(), matrix.psi().mesh(), IOobject::NO_READ, IOobject::AUTO_WRITE ), matrix.psi().mesh(), dimensioned<T>( "no", matrix.dimensions()/dimVolume, pTraits<T>::zero ) ) ); } val()=this->calcResiduum(matrix); }