Skip to content

Commit 93e67f4

Browse files
Fix wall law and clean-up (#11670)
1 parent b2ea4e9 commit 93e67f4

File tree

4 files changed

+86
-132
lines changed

4 files changed

+86
-132
lines changed

applications/FreeSurfaceApplication/custom_utilities/edgebased_levelset.h

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,6 @@ namespace Kratos
7777
for (ModelPart::NodesContainerType::iterator it = mr_model_part.NodesBegin(); it != mr_model_part.NodesEnd(); it++)
7878
it->FastGetSolutionStepValue(VISCOSITY) = viscosity;
7979

80-
mMolecularViscosity = viscosity;
81-
8280
mRho = density;
8381

8482
mdelta_t_avg = 1000.0;
@@ -392,7 +390,8 @@ namespace Kratos
392390
mr_matrix_container.FillVectorFromDatabase(VELOCITY, mvel_n1, rNodes);
393391

394392
int fixed_size = mFixedVelocities.size();
395-
#pragma omp parallel for firstprivate(fixed_size)
393+
394+
#pragma omp parallel for firstprivate(fixed_size)
396395
for (int i_velocity = 0; i_velocity < fixed_size; i_velocity++)
397396
{
398397
unsigned int i_node = mFixedVelocities[i_velocity];
@@ -447,7 +446,7 @@ namespace Kratos
447446
double stabdt_convection_factor = mstabdt_convection_factor;
448447
double tau2_factor = mtau2_factor;
449448

450-
#pragma omp parallel for firstprivate(time_inv_avg, stabdt_pressure_factor, stabdt_convection_factor, tau2_factor)
449+
#pragma omp parallel for firstprivate(time_inv_avg, stabdt_pressure_factor, stabdt_convection_factor, tau2_factor)
451450
for (int i_node = 0; i_node < n_nodes; i_node++)
452451
{
453452
double &h_avg_i = mHavg[i_node];
@@ -576,7 +575,8 @@ namespace Kratos
576575
array_1d<double, TDim> stab_high;
577576

578577
double inverse_rho = 1.0 / mRho;
579-
#pragma omp parallel for private(stab_low, stab_high)
578+
579+
#pragma omp parallel for private(stab_low, stab_high)
580580
for (int i_node = 0; i_node < n_nodes; i_node++)
581581
{
582582
double dist = mdistances[i_node];
@@ -974,12 +974,11 @@ namespace Kratos
974974
mPn1[i_node] += dp[i_node] * scaling_factors[i_node];
975975
});
976976

977-
// write pressure and density to Kratos
977+
// write pressure to Kratos
978978
mr_matrix_container.WriteScalarToDatabase(PRESSURE, mPn1, rNodes);
979979

980980
// compute pressure proj for the next step
981-
982-
#pragma omp parallel for private(work_array)
981+
#pragma omp parallel for private(work_array)
983982
for (int i_node = 0; i_node < n_nodes; i_node++)
984983
{
985984
array_1d<double, TDim> &xi_i = mXi[i_node];
@@ -1039,7 +1038,7 @@ namespace Kratos
10391038

10401039
// compute end of step momentum
10411040
double rho_inv = 1.0 / mRho;
1042-
#pragma omp parallel for private(correction) firstprivate(delta_t, rho_inv, factor)
1041+
#pragma omp parallel for private(correction) firstprivate(delta_t, rho_inv, factor)
10431042
for (int i_node = 0; i_node < n_nodes; i_node++)
10441043
{
10451044
double dist = mdistances[i_node];
@@ -1082,7 +1081,7 @@ namespace Kratos
10821081
// calculate the error on the divergence
10831082
if (muse_mass_correction == true)
10841083
{
1085-
#pragma omp parallel for private(correction) firstprivate(delta_t, rho_inv)
1084+
#pragma omp parallel for private(correction) firstprivate(delta_t, rho_inv)
10861085
for (int i_node = 0; i_node < n_nodes; i_node++)
10871086
{
10881087
const double dist = mdistances[i_node];
@@ -1119,7 +1118,8 @@ namespace Kratos
11191118
{
11201119
// apply conditions on corner edges
11211120
int edge_size = medge_nodes_direction.size();
1122-
#pragma omp parallel for firstprivate(edge_size)
1121+
1122+
#pragma omp parallel for firstprivate(edge_size)
11231123
for (int i = 0; i < edge_size; i++)
11241124
{
11251125
int i_node = medge_nodes[i];
@@ -1152,7 +1152,8 @@ namespace Kratos
11521152

11531153
// slip condition
11541154
int slip_size = mSlipBoundaryList.size();
1155-
#pragma omp parallel for firstprivate(slip_size)
1155+
1156+
#pragma omp parallel for firstprivate(slip_size)
11561157
for (int i_slip = 0; i_slip < slip_size; i_slip++)
11571158
{
11581159
unsigned int i_node = mSlipBoundaryList[i_slip];
@@ -1177,7 +1178,8 @@ namespace Kratos
11771178

11781179
// fixed condition
11791180
int fixed_size = mFixedVelocities.size();
1180-
#pragma omp parallel for firstprivate(fixed_size)
1181+
1182+
#pragma omp parallel for firstprivate(fixed_size)
11811183
for (int i_velocity = 0; i_velocity < fixed_size; i_velocity++)
11821184
{
11831185
unsigned int i_node = mFixedVelocities[i_velocity];
@@ -1723,7 +1725,8 @@ namespace Kratos
17231725
// calculating the convective projection
17241726
array_1d<double, TDim> a_i;
17251727
array_1d<double, TDim> a_j;
1726-
#pragma omp parallel for private(a_i, a_j)
1728+
1729+
#pragma omp parallel for private(a_i, a_j)
17271730
for (int i_node = 0; i_node < n_nodes; i_node++)
17281731
{
17291732
array_1d<double, TDim> &pi_i = mPiConvection[i_node];
@@ -2204,7 +2207,6 @@ namespace Kratos
22042207
}
22052208

22062209
private:
2207-
double mMolecularViscosity;
22082210
MatrixContainer &mr_matrix_container;
22092211
ModelPart &mr_model_part;
22102212

@@ -2357,7 +2359,6 @@ namespace Kratos
23572359
{
23582360
double &h_i = mHavg[i_node];
23592361
double &m_i = mr_matrix_container.GetLumpedMass()[i_node];
2360-
// double& rho_i = mRho[i_node];
23612362

23622363
h_i = sqrt(2.0 * m_i);
23632364
}
@@ -2368,7 +2369,6 @@ namespace Kratos
23682369
{
23692370
double &h_i = mHavg[i_node];
23702371
double &m_i = mr_matrix_container.GetLumpedMass()[i_node];
2371-
// double& rho_i = mRho[i_node];
23722372

23732373
h_i = pow(6.0 * m_i, 1.0 / 3.0);
23742374
}
@@ -2411,7 +2411,8 @@ namespace Kratos
24112411
double stab_high;
24122412
array_1d<double, TDim> a_i;
24132413
array_1d<double, TDim> a_j;
2414-
#pragma omp parallel for private(stab_low, stab_high, a_i, a_j)
2414+
2415+
#pragma omp parallel for private(stab_low, stab_high, a_i, a_j)
24152416
for (int i_node = 0; i_node < n_nodes; i_node++)
24162417
{
24172418
double &rhs_i = rhs[i_node];
@@ -2707,18 +2708,21 @@ namespace Kratos
27072708
double y_plus_incercept = 10.9931899;
27082709
unsigned int itmax = 100;
27092710

2710-
KRATOS_ERROR_IF(mViscosity[0] == 0) << "it is not possible to use the wall law with 0 viscosity" << std::endl;
2711-
27122711
// slip condition
27132712
int slip_size = mSlipBoundaryList.size();
2714-
#pragma omp parallel for firstprivate(slip_size, B, toll, ym, y_plus_incercept, itmax)
2713+
2714+
#pragma omp parallel for firstprivate(slip_size, B, toll, ym, y_plus_incercept, itmax)
27152715
for (int i_slip = 0; i_slip < slip_size; i_slip++)
27162716
{
27172717
unsigned int i_node = mSlipBoundaryList[i_slip];
27182718
double dist = mdistances[i_node];
2719-
const double nu = mViscosity[i_node];
27202719
if (dist <= 0.0)
27212720
{
2721+
2722+
KRATOS_ERROR_IF(mViscosity[i_node] == 0) << "it is not possible to use the wall law with 0 viscosity" << std::endl;
2723+
2724+
const double nu = mViscosity[i_node];
2725+
27222726
// array_1d<double, TDim>& rhs_i = rhs[i_node];
27232727
const array_1d<double, TDim> &U_i = vel[i_node];
27242728
const array_1d<double, TDim> &an_i = mSlipNormal[i_node];
@@ -2775,7 +2779,8 @@ namespace Kratos
27752779
int n_nodes = rNodes.size();
27762780
mr_matrix_container.FillVectorFromDatabase(VELOCITY, mvel_n1, rNodes);
27772781
array_1d<double, TDim> stab_high;
2778-
#pragma omp parallel for private(grad_vx, grad_vy, grad_vz)
2782+
2783+
#pragma omp parallel for private(grad_vx, grad_vy, grad_vz)
27792784
for (int i_node = 0; i_node < n_nodes; i_node++)
27802785
{
27812786
// set to zero the gradients
@@ -2848,7 +2853,7 @@ namespace Kratos
28482853
mr_matrix_container.FillVectorFromDatabase(VELOCITY, mvel_n1, rNodes);
28492854
array_1d<double, TDim> stab_high;
28502855

2851-
#pragma omp parallel for private(grad_vx, grad_vy)
2856+
#pragma omp parallel for private(grad_vx, grad_vy)
28522857
for (int i_node = 0; i_node < n_nodes; i_node++)
28532858
{
28542859
// set to zero the gradients

0 commit comments

Comments
 (0)