Topic: Bug in IsotropicMoistureMaterial (fixed pushed), affects 2 materials

Sorry for publishing this delayed; I thought i had submitted this message a few days ago, but I got the forum "confirm security token" message

Old code did:

void IsotropicMoistureTransferMaterial :: giveFluxVector(FloatArray &answer, GaussPoint *gp, const FloatArray &grad, const FloatArray &field, TimeStep *tStep)
{
    TransportMaterialStatus *ms = static_cast< TransportMaterialStatus * >( this->giveStatus(gp) );

    answer.beScaled(-this->givePermeability(gp, tStep), grad);
    ms->setTempField(field);
    ms->setTempGradient(grad);
    ms->setTempFlux(answer);
}

but givePermeability depends on the temp field.

It should be

void IsotropicMoistureTransferMaterial :: giveFluxVector(FloatArray &answer, GaussPoint *gp, const FloatArray &grad, const FloatArray &field, TimeStep *tStep)
{
    TransportMaterialStatus *ms = static_cast< TransportMaterialStatus * >( this->giveStatus(gp) );

    ms->setTempField(field);
    ms->setTempGradient(grad);
    answer.beScaled(-this->givePermeability(gp, tStep), grad);
    ms->setTempFlux(answer);
}

Else, it will use the permeability computed for the field of the previous *iteration*, which is unphysical.
The only affected tests at bazantnajjar and nlisomoisture02. There isn't a drastic difference in the results, but requires updating the tests.
This is also exactly what all other transport material does (e.g. IsotropicHeatTransferMaterial), so I think this change is definitely required.

I pushed a fix earlier, this is just to let everyone know.

(this bug is something i discovered in my rework of the way we handle dof values)