mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of ssh://noisy/home/noisy2/OpenFOAM/OpenFOAM-dev
This commit is contained in:
@ -20,7 +20,7 @@ EXE_INC = \
|
||||
EXE_LIBS = \
|
||||
-lengine \
|
||||
-lmeshTools \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lcompressibleRASmodels \
|
||||
-lbasicThermophysicalModels \
|
||||
-lcombustionThermophysicalModels \
|
||||
-lspecie \
|
||||
|
||||
@ -12,7 +12,7 @@ EXE_LIBS = \
|
||||
-lengine \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lcompressibleRASmodels \
|
||||
-lbasicThermophysicalModels \
|
||||
-lcombustionThermophysicalModels \
|
||||
-lspecie \
|
||||
|
||||
@ -11,6 +11,6 @@ EXE_INC = \
|
||||
EXE_LIBS = \
|
||||
-lengine \
|
||||
-lfiniteVolume \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lcompressibleRASmodels \
|
||||
-lbasicThermophysicalModels \
|
||||
-lspecie
|
||||
|
||||
@ -18,7 +18,7 @@ EXE_INC = \
|
||||
|
||||
EXE_LIBS = \
|
||||
-lengine \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lcompressibleRASmodels \
|
||||
-lcombustionThermophysicalModels \
|
||||
-lfiniteVolume \
|
||||
-llagrangian \
|
||||
|
||||
@ -16,7 +16,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/ODE/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lcompressibleRASmodels \
|
||||
-lcombustionThermophysicalModels \
|
||||
-lfiniteVolume \
|
||||
-llagrangian \
|
||||
|
||||
@ -11,7 +11,7 @@ EXE_INC = \
|
||||
EXE_LIBS = \
|
||||
-lengine \
|
||||
-lfiniteVolume \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lcompressibleRASmodels \
|
||||
-lbasicThermophysicalModels \
|
||||
-lcombustionThermophysicalModels \
|
||||
-lspecie \
|
||||
|
||||
@ -9,7 +9,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/ODE/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lcompressibleRASmodels \
|
||||
-lcombustionThermophysicalModels \
|
||||
-lfiniteVolume \
|
||||
-lspecie \
|
||||
|
||||
@ -9,4 +9,4 @@ EXE_LIBS = \
|
||||
-lmeshTools \
|
||||
-lbasicThermophysicalModels \
|
||||
-lspecie \
|
||||
-lcompressibleTurbulenceModels
|
||||
-lcompressibleRASmodels
|
||||
|
||||
@ -10,4 +10,4 @@ EXE_LIBS = \
|
||||
-lmeshTools \
|
||||
-lbasicThermophysicalModels \
|
||||
-lspecie \
|
||||
-lcompressibleTurbulenceModels
|
||||
-lcompressibleRASmodels
|
||||
|
||||
@ -9,4 +9,4 @@ EXE_LIBS = \
|
||||
-lmeshTools \
|
||||
-lbasicThermophysicalModels \
|
||||
-lspecie \
|
||||
-lcompressibleTurbulenceModels
|
||||
-lcompressibleRASmodels
|
||||
|
||||
@ -9,4 +9,4 @@ EXE_LIBS = \
|
||||
-lmeshTools \
|
||||
-lbasicThermophysicalModels \
|
||||
-lspecie \
|
||||
-lcompressibleTurbulenceModels
|
||||
-lcompressibleRASmodels
|
||||
|
||||
@ -7,6 +7,6 @@ EXE_INC = \
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lcompressibleRASmodels \
|
||||
-lbasicThermophysicalModels \
|
||||
-lspecie
|
||||
|
||||
@ -9,4 +9,4 @@ EXE_LIBS = \
|
||||
-lmeshTools \
|
||||
-lbasicThermophysicalModels \
|
||||
-lspecie \
|
||||
-lcompressibleTurbulenceModels
|
||||
-lcompressibleRASmodels
|
||||
|
||||
@ -9,4 +9,4 @@ EXE_LIBS = \
|
||||
-lmeshTools \
|
||||
-lbasicThermophysicalModels \
|
||||
-lspecie \
|
||||
-lcompressibleTurbulenceModels
|
||||
-lcompressibleRASmodels
|
||||
|
||||
@ -11,4 +11,4 @@ EXE_LIBS = \
|
||||
-lbasicThermophysicalModels \
|
||||
-lspecie \
|
||||
-lradiation \
|
||||
-lcompressibleTurbulenceModels
|
||||
-lcompressibleRASmodels
|
||||
|
||||
@ -13,4 +13,4 @@ EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lbasicThermophysicalModels \
|
||||
-lspecie \
|
||||
-lcompressibleTurbulenceModels
|
||||
-lcompressibleRASmodels
|
||||
|
||||
@ -5,7 +5,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/sampling/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleTransportModels \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools \
|
||||
|
||||
@ -4,7 +4,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels
|
||||
|
||||
EXE_LIBS = \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleTransportModels \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools \
|
||||
|
||||
@ -10,6 +10,6 @@ EXE_LIBS = \
|
||||
-ldynamicFvMesh \
|
||||
-ldynamicMesh \
|
||||
-lmeshTools \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleTransportModels \
|
||||
-lfiniteVolume
|
||||
|
||||
@ -4,7 +4,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleTransportModels \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools
|
||||
|
||||
@ -13,7 +13,7 @@ EXE_INC = \
|
||||
EXE_LIBS = \
|
||||
-linterfaceProperties \
|
||||
-lincompressibleTransportModels \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lfiniteVolume \
|
||||
-ldynamicMesh \
|
||||
-lmeshTools \
|
||||
|
||||
@ -8,7 +8,7 @@ EXE_INC = \
|
||||
|
||||
EXE_LIBS = \
|
||||
-lincompressibleTransportModels \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lfiniteVolume \
|
||||
-lbarotropicCompressibilityModel
|
||||
|
||||
|
||||
@ -9,5 +9,5 @@ EXE_INC = \
|
||||
EXE_LIBS = \
|
||||
-linterfaceProperties \
|
||||
-lincompressibleTransportModels \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lfiniteVolume
|
||||
|
||||
@ -16,7 +16,12 @@ if(turbulence)
|
||||
(
|
||||
fvm::ddt(beta, epsilon)
|
||||
+ fvm::div(phib, epsilon)
|
||||
- fvm::laplacian(alphaEps*nuEffb, epsilon)
|
||||
- fvm::laplacian
|
||||
(
|
||||
alphaEps*nuEffb,
|
||||
epsilon,
|
||||
"laplacian(alphaEps*nuEffb,epsilon)"
|
||||
)
|
||||
==
|
||||
C1*beta*G*epsilon/k
|
||||
- fvm::Sp(C2*beta*epsilon/k, epsilon)
|
||||
|
||||
@ -0,0 +1,4 @@
|
||||
hexBlock.C
|
||||
cfx4ToFoam.C
|
||||
|
||||
EXE = $(FOAM_APPBIN)/cfx4ToFoam
|
||||
@ -23,10 +23,10 @@ License
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Application
|
||||
cfxToFoam
|
||||
cfx4ToFoam
|
||||
|
||||
Description
|
||||
Converts a CFX mesh to FOAM format
|
||||
Converts a CFX 4 mesh to FOAM format
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -1,4 +0,0 @@
|
||||
hexBlock.C
|
||||
cfxToFoam.C
|
||||
|
||||
EXE = $(FOAM_APPBIN)/cfxToFoam
|
||||
@ -4,7 +4,7 @@ EXE_LIBS = \
|
||||
-lchemistryModel \
|
||||
-lcombustionThermophysicalModels \
|
||||
-lcompressibleLESmodels \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lcompressibleRASmodels \
|
||||
-ldecompositionMethods \
|
||||
-ldieselSpray \
|
||||
-ldynamicFvMesh \
|
||||
@ -17,7 +17,7 @@ EXE_LIBS = \
|
||||
-lfvMotionSolvers \
|
||||
-lincompressibleLESmodels \
|
||||
-lincompressibleTransportModels \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-linterfaceProperties \
|
||||
-llagrangianIntermediate \
|
||||
-llagrangian \
|
||||
|
||||
@ -11,9 +11,9 @@ EXE_LIBS = \
|
||||
$(FOAM_LIBBIN)/postCalc.o \
|
||||
-lfiniteVolume \
|
||||
-lincompressibleTransportModels \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleLESmodels \
|
||||
-lbasicThermophysicalModels \
|
||||
-lspecie \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lcompressibleRASmodels \
|
||||
-lcompressibleLESmodels
|
||||
|
||||
@ -5,5 +5,5 @@ EXE_INC = \
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleTransportModels
|
||||
|
||||
@ -5,6 +5,6 @@ EXE_INC = \
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleTransportModels \
|
||||
-lfiniteVolume
|
||||
|
||||
@ -5,5 +5,5 @@ EXE_INC = \
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleTransportModels
|
||||
|
||||
@ -14,9 +14,9 @@ EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools \
|
||||
-lincompressibleTransportModels \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleLESmodels \
|
||||
-lbasicThermophysicalModels \
|
||||
-lspecie \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lcompressibleRASmodels \
|
||||
-lcompressibleLESmodels
|
||||
|
||||
@ -4,6 +4,6 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels
|
||||
|
||||
EXE_LIBS = \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleTransportModels \
|
||||
-lfiniteVolume
|
||||
|
||||
@ -6,7 +6,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lcompressibleRASmodels \
|
||||
-lcombustionThermophysicalModels \
|
||||
-lfiniteVolume \
|
||||
-lspecie \
|
||||
|
||||
@ -4,6 +4,6 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels
|
||||
|
||||
EXE_LIBS = \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleTransportModels \
|
||||
-lfiniteVolume
|
||||
|
||||
@ -4,6 +4,6 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels
|
||||
|
||||
EXE_LIBS = \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleTransportModels \
|
||||
-lfiniteVolume
|
||||
|
||||
@ -111,11 +111,11 @@ void turbulentMixingLengthDissipationRateInletFvPatchScalarField::updateCoeffs()
|
||||
);
|
||||
|
||||
const dictionary& turbulenceCoeffs = turbulenceProperties.subDict
|
||||
(
|
||||
word(turbulenceProperties.lookup("turbulenceModel")) + "Coeffs"
|
||||
(
|
||||
word(turbulenceProperties.lookup("RASmodel")) + "Coeffs"
|
||||
);
|
||||
|
||||
scalar Cmu = dimensionedScalar(turbulenceCoeffs.lookup("Cmu")).value();
|
||||
scalar Cmu = readScalar(turbulenceCoeffs.lookup("Cmu"));
|
||||
scalar Cmu75 = pow(Cmu, 0.75);
|
||||
|
||||
const fvPatchField<scalar>& k =
|
||||
|
||||
@ -116,11 +116,11 @@ void turbulentMixingLengthFrequencyInletFvPatchScalarField::updateCoeffs()
|
||||
);
|
||||
|
||||
const dictionary& turbulenceCoeffs = turbulenceProperties.subDict
|
||||
(
|
||||
word(turbulenceProperties.lookup("turbulenceModel")) + "Coeffs"
|
||||
(
|
||||
word(turbulenceProperties.lookup("RASmodel")) + "Coeffs"
|
||||
);
|
||||
|
||||
scalar Cmu = dimensionedScalar(turbulenceCoeffs.lookup("Cmu")).value();
|
||||
scalar Cmu = readScalar(turbulenceCoeffs.lookup("Cmu"));
|
||||
scalar Cmu25 = pow(Cmu, 0.25);
|
||||
|
||||
const fvPatchField<scalar>& kp =
|
||||
|
||||
@ -15,7 +15,7 @@ EXE_INC = \
|
||||
LIB_LIBS = \
|
||||
-llagrangian \
|
||||
-lfiniteVolume \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lcompressibleRASmodels \
|
||||
-lcompressibleLESmodels \
|
||||
-lLESdeltas \
|
||||
-lliquids \
|
||||
|
||||
@ -23,4 +23,4 @@ LIB_LIBS = \
|
||||
-lspecie \
|
||||
-lbasicThermophysicalModels \
|
||||
-lcombustionThermophysicalModels \
|
||||
-lcompressibleTurbulenceModels
|
||||
-lcompressibleRASmodels
|
||||
|
||||
@ -12,9 +12,9 @@ LIB_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools \
|
||||
-lincompressibleTransportModels \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleLESmodels \
|
||||
-lbasicThermophysicalModels \
|
||||
-lspecie \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lcompressibleRASmodels \
|
||||
-lcompressibleLESmodels
|
||||
|
||||
@ -12,4 +12,4 @@ kOmegaSST/kOmegaSST.C
|
||||
|
||||
wallFunctions/mutWallFunctions/mutStandardRoughWallFunction/mutStandardRoughWallFunctionFvPatchScalarField.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libcompressibleTurbulenceModels
|
||||
LIB = $(FOAM_LIBBIN)/libcompressibleRASmodels
|
||||
|
||||
@ -172,8 +172,8 @@ bool RASmodel::read()
|
||||
lookup("turbulence") >> turbulence_;
|
||||
RASmodelCoeffs_ = subDict(type() + "Coeffs");
|
||||
|
||||
subDict("wallFunctionCoeffs").lookup("kappa") >> kappa_;
|
||||
subDict("wallFunctionCoeffs").lookup("E") >> E_;
|
||||
subDict("wallFunctionCoeffs").readIfPresent<scalar>("kappa", kappa_);
|
||||
subDict("wallFunctionCoeffs").readIfPresent<scalar>("E", E_);
|
||||
|
||||
yPlusLam_ = yPlusLam(kappa_, E_);
|
||||
|
||||
|
||||
@ -20,4 +20,4 @@ wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField
|
||||
wallFunctions/nutWallFunctions/nutStandardWallFunction/nutStandardWallFunctionFvPatchScalarField.C
|
||||
wallFunctions/nutWallFunctions/nutStandardRoughWallFunction/nutStandardRoughWallFunctionFvPatchScalarField.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libincompressibleTurbulenceModels
|
||||
LIB = $(FOAM_LIBBIN)/libincompressibleRASmodels
|
||||
|
||||
@ -169,8 +169,8 @@ bool RASmodel::read()
|
||||
lookup("turbulence") >> turbulence_;
|
||||
RASmodelCoeffs_ = subDict(type() + "Coeffs");
|
||||
|
||||
subDict("wallFunctionCoeffs").lookup("kappa") >> kappa_;
|
||||
subDict("wallFunctionCoeffs").lookup("E") >> E_;
|
||||
subDict("wallFunctionCoeffs").readIfPresent<scalar>("kappa", kappa_);
|
||||
subDict("wallFunctionCoeffs").readIfPresent<scalar>("E", E_);
|
||||
|
||||
yPlusLam_ = yPlusLam(kappa_, E_);
|
||||
|
||||
|
||||
@ -4,6 +4,6 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels
|
||||
|
||||
EXE_LIBS = \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleTransportModels \
|
||||
-lfiniteVolume
|
||||
|
||||
@ -25,7 +25,7 @@ restartApplication ()
|
||||
fi
|
||||
}
|
||||
|
||||
runKivaToFoam . $case/otape17
|
||||
runKivaToFoam . otape17
|
||||
cp system/controlDict.1st system/controlDict
|
||||
runApplication $application
|
||||
cp system/controlDict.2nd system/controlDict
|
||||
|
||||
12
tutorials/interDyMFoam/Allrun
Executable file
12
tutorials/interDyMFoam/Allrun
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
# Source tutorial run functions
|
||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||
|
||||
# Get application name from directory
|
||||
application=`basename $PWD`
|
||||
|
||||
(cd damBreakWithObstacle && runApplication blockMesh)
|
||||
(cd damBreakWithObstacle && runApplication setSet -batch createObstacle.setSet)
|
||||
(cd damBreakWithObstacle && runApplication subsetMesh c0 -patch walls)
|
||||
(cd damBreakWithObstacle && runApplication setFields -latestTime)
|
||||
(cd damBreakWithObstacle && runApplication $application)
|
||||
@ -1,12 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Source tutorial run functions
|
||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||
|
||||
# Get application name from directory
|
||||
application=`basename $PWD`
|
||||
|
||||
runApplication blockMesh
|
||||
runApplication setSet -batch createObstacle.setSet
|
||||
runApplication subsetMesh c0 -patch walls
|
||||
runApplication setFields -latestTime
|
||||
runApplication $application
|
||||
@ -25,20 +25,24 @@ FoamFile
|
||||
|
||||
interpolationScheme cellPoint;
|
||||
|
||||
writeFormat raw;
|
||||
setFormat raw;
|
||||
|
||||
sampleSets
|
||||
sets
|
||||
(
|
||||
uniform
|
||||
line_centreProfile
|
||||
{
|
||||
name centreProfile;
|
||||
axis y;
|
||||
type uniform;
|
||||
|
||||
axis distance;
|
||||
start (10.001 -1 0.01);
|
||||
end (10.001 1 0.01);
|
||||
nPoints 100;
|
||||
}
|
||||
);
|
||||
|
||||
surfaces
|
||||
();
|
||||
|
||||
fields
|
||||
(
|
||||
U.component(0)
|
||||
|
||||
@ -58,6 +58,8 @@ laplacianSchemes
|
||||
// pCorrect
|
||||
laplacian((rho|A(U)),p) Gauss linear corrected;
|
||||
|
||||
laplacian((rho*rAU),p) Gauss linear corrected;
|
||||
|
||||
// epsilonEqn
|
||||
laplacian(DepsilonEff,epsilon) Gauss linear corrected;
|
||||
|
||||
|
||||
@ -18,4 +18,4 @@ EXE_LIBS = \
|
||||
-lcombustionThermophysicalModels \
|
||||
-lspecie \
|
||||
-lradiation \
|
||||
-lcompressibleTurbulenceModels
|
||||
-lcompressibleRASmodels
|
||||
|
||||
@ -4,7 +4,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels
|
||||
|
||||
EXE_LIBS = \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lincompressibleRASmodels \
|
||||
-lincompressibleTransportModels \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools
|
||||
|
||||
@ -25,13 +25,14 @@ FoamFile
|
||||
|
||||
interpolationScheme cellPoint;
|
||||
|
||||
writeFormat raw;
|
||||
setFormat raw;
|
||||
|
||||
sampleSets
|
||||
sets
|
||||
(
|
||||
uniform
|
||||
data
|
||||
{
|
||||
name data;
|
||||
type uniform;
|
||||
|
||||
axis x;
|
||||
start (-4.995 0 0);
|
||||
end (4.995 0 0);
|
||||
@ -39,6 +40,9 @@ sampleSets
|
||||
}
|
||||
);
|
||||
|
||||
surfaces
|
||||
();
|
||||
|
||||
fields
|
||||
(
|
||||
T
|
||||
|
||||
Reference in New Issue
Block a user