diff --git a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixOperations.C b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixOperations.C index 108f60d7e..53e6dd26e 100644 --- a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixOperations.C +++ b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixOperations.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -306,23 +306,20 @@ void Foam::lduMatrix::operator*=(const scalarField& sf) *diagPtr_ *= sf; } - if (upperPtr_) + // Non-uniform scaling causes a symmetric matrix + // to become asymmetric + if (symmetric() || asymmetric()) { - scalarField& upper = *upperPtr_; + scalarField& upper = this->upper(); + scalarField& lower = this->lower(); const labelUList& l = lduAddr().lowerAddr(); + const labelUList& u = lduAddr().upperAddr(); for (register label face=0; face