ENH: use cmptMag, cmptMultiply instead of replacing field components

This commit is contained in:
Mark Olesen
2023-01-27 15:21:19 +01:00
parent ea2bedf073
commit 5672bb296f
8 changed files with 34 additions and 46 deletions

View File

@ -130,12 +130,7 @@ template<class Type>
Foam::tmp<Foam::Field<Type>>
Foam::basicSymmetryFaPatchField<Type>::snGradTransformDiag() const
{
const vectorField nHat(this->patch().edgeNormals());
vectorField diag(nHat.size());
diag.replace(vector::X, mag(nHat.component(vector::X)));
diag.replace(vector::Y, mag(nHat.component(vector::Y)));
diag.replace(vector::Z, mag(nHat.component(vector::Z)));
tmp<vectorField> diag(cmptMag(this->patch().edgeNormals()));
return transformFieldMask<Type>(pow<vector, pTraits<Type>::rank>(diag));
}

View File

@ -131,13 +131,7 @@ template<class Type>
Foam::tmp<Foam::Field<Type>>
Foam::basicSymmetryFvPatchField<Type>::snGradTransformDiag() const
{
const vectorField nHat(this->patch().nf());
vectorField diag(nHat.size());
diag.replace(vector::X, mag(nHat.component(vector::X)));
diag.replace(vector::Y, mag(nHat.component(vector::Y)));
diag.replace(vector::Z, mag(nHat.component(vector::Z)));
tmp<vectorField> diag(cmptMag(this->patch().nf()));
return transformFieldMask<Type>(pow<vector, pTraits<Type>::rank>(diag));
}

View File

@ -171,12 +171,7 @@ template<class Type>
Foam::tmp<Foam::Field<Type>>
Foam::fixedNormalSlipFvPatchField<Type>::snGradTransformDiag() const
{
const vectorField nHat(this->patch().nf());
vectorField diag(nHat.size());
diag.replace(vector::X, mag(nHat.component(vector::X)));
diag.replace(vector::Y, mag(nHat.component(vector::Y)));
diag.replace(vector::Z, mag(nHat.component(vector::Z)));
tmp<vectorField> diag(cmptMag(this->patch().nf()));
return transformFieldMask<Type>(pow<vector, pTraits<Type>::rank>(diag));
}

View File

@ -188,12 +188,7 @@ template<class Type>
Foam::tmp<Foam::Field<Type>>
Foam::partialSlipFvPatchField<Type>::snGradTransformDiag() const
{
const vectorField nHat(this->patch().nf());
vectorField diag(nHat.size());
diag.replace(vector::X, mag(nHat.component(vector::X)));
diag.replace(vector::Y, mag(nHat.component(vector::Y)));
diag.replace(vector::Z, mag(nHat.component(vector::Z)));
tmp<vectorField> diag(cmptMag(this->patch().nf()));
return
valueFraction_*pTraits<Type>::one

View File

@ -67,8 +67,12 @@ void Foam::waveModels::shallowWaterAbsorption::setVelocity
// Apply zero-gradient condition to z-component of velocity only
const volVectorField& U = mesh_.lookupObject<volVectorField>(UName_);
U_ = U.boundaryField()[patch_.index()].patchInternalField();
U_.replace(0, 0);
U_.replace(1, 0);
for (vector& vel : U_)
{
vel.x() = 0;
vel.y() = 0;
}
}