Lines Matching refs:dim
68 PetscInt dim, d, cStart, cEnd, c, Np, p; in SetInitialCoordinates() local
80 PetscCall(DMGetDimension(sw, &dim)); in SetInitialCoordinates()
86 PetscCall(PetscMalloc5(dim, ¢roid, dim, &xi0, dim, &v0, dim * dim, &J, dim * dim, &invJ)); in SetInitialCoordinates()
87 for (d = 0; d < dim; ++d) xi0[d] = -1.0; in SetInitialCoordinates()
94 for (d = 0; d < dim; ++d) coords[c * dim + d] = centroid[d]; in SetInitialCoordinates()
102 for (d = 0; d < dim; ++d) { in SetInitialCoordinates()
107 for (d = 0; d < dim; ++d) refcoords[d] -= PetscSqrtReal(dim) * sum; in SetInitialCoordinates()
109 PetscCall(DMPlexReferenceToCoordinates(dm, c, 1, refcoords, &coords[n * dim])); in SetInitialCoordinates()
116 for (d = 0; d < dim; ++d) { in SetInitialCoordinates()
120 velocity[p * dim + d] = v_val; in SetInitialCoordinates()
140 PetscInt dim, d, cStart, cEnd, c, Np, p, n; in SetInitialConditions() local
147 PetscCall(DMGetDimension(dm, &dim)); in SetInitialConditions()
154 for (d = 0; d < dim; d++) initialConditions[n * dim + d] = velocity[n * dim + d]; in SetInitialConditions()
166 PetscInt dim, cStart, cEnd, c, Np = user->N, p; in CreateParticles() local
171 PetscCall(DMGetDimension(dm, &dim)); in CreateParticles()
174 PetscCall(DMSetDimension(*sw, dim)); in CreateParticles()
176 if (user->h < 0.) user->h = 2. * user->L / PetscPowReal(user->N, 1. / dim); in CreateParticles()
183 PetscCall(DMSwarmRegisterPetscDatatypeField(*sw, "velocity", dim, PETSC_REAL)); in CreateParticles()
205 static void DMPlex_WaxpyD_Internal(PetscInt dim, PetscReal a, const PetscReal *x, const PetscReal *… in DMPlex_WaxpyD_Internal() argument
209 for (d = 0; d < dim; ++d) w[d] = a * x[d] + y[d]; in DMPlex_WaxpyD_Internal()
213 static PetscReal DMPlex_DotD_Internal(PetscInt dim, const PetscScalar *x, const PetscReal *y) in DMPlex_DotD_Internal() argument
218 for (d = 0; d < dim; ++d) sum += PetscRealPart(x[d]) * y[d]; in DMPlex_DotD_Internal()
258 static PetscReal Gaussian(PetscInt dim, const PetscReal mu[], PetscReal sigma, const PetscReal x[]) in Gaussian() argument
263 for (d = 0; d < dim; ++d) arg += PetscSqr(x[d] - mu[d]); in Gaussian()
264 return PetscPowReal(2.0 * PETSC_PI * sigma, -dim / 2.0) * PetscExpReal(-arg / (2.0 * sigma)); in Gaussian()
287 static PetscErrorCode ComputeGradS(PetscInt dim, PetscInt Np, const PetscReal vp[], const PetscReal… in ComputeGradS() argument
291 PetscInt ny = dim > 1 ? nx : 1; in ComputeGradS()
292 PetscInt nz = dim > 2 ? nx : 1; in ComputeGradS()
296 for (d = 0; d < dim; ++d) integral[d] = 0.0; in ComputeGradS()
304 for (q = 0; q < Np; ++q) sum += Gaussian(dim, &velocity[q * dim], epsilon, vc_l); in ComputeGradS()
306 …for (d = 0; d < dim; ++d) integral[d] += (-1. / epsilon) * PetscAbsReal(vp[d] - vc_l[d]) * Gaussia… in ComputeGradS()
314 static PetscErrorCode QCompute(PetscInt dim, const PetscReal vp[], const PetscReal vq[], PetscReal … in QCompute() argument
320 DMPlex_WaxpyD_Internal(dim, -1.0, vq, vp, xi); in QCompute()
321 xi2 = DMPlex_DotD_Internal(dim, xi, xi); in QCompute()
324 for (d = 0; d < dim; ++d) { in QCompute()
325 for (e = 0; e < dim; ++e) Q[d * dim + e] = -xi[d] * xi[e] / xi3; in QCompute()
326 Q[d * dim + d] += 1. / mag; in QCompute()
340 PetscInt dim, Np, p, q; in RHSFunctionParticles() local
345 PetscCall(DMGetDimension(sw, &dim)); in RHSFunctionParticles()
351 Np /= dim; in RHSFunctionParticles()
356 PetscCall(ComputeGradS(dim, Np, &velocity[p * dim], velocity, gradS_p, user)); in RHSFunctionParticles()
361 PetscCall(ComputeGradS(dim, Np, &velocity[q * dim], velocity, gradS_q, user)); in RHSFunctionParticles()
362 DMPlex_WaxpyD_Internal(dim, -1.0, gradS_q, gradS_p, GammaS); in RHSFunctionParticles()
363 PetscCall(QCompute(dim, &u[p * dim], &u[q * dim], Q)); in RHSFunctionParticles()
364 switch (dim) { in RHSFunctionParticles()
366 DMPlex_MultAdd2DReal_Internal(Q, 1, GammaS, &r[p * dim]); in RHSFunctionParticles()
369 DMPlex_MultAdd3DReal_Internal(Q, 1, GammaS, &r[p * dim]); in RHSFunctionParticles()
372 …SETERRQ(PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "Do not support dimension %" PetscInt_FMT, dim); in RHSFunctionParticles()
375 …ETSC_COMM_WORLD, "Final %4" PetscInt_FMT " %10.8lf %10.8lf\n", p, r[p * dim + 0], r[p * dim + 1])); in RHSFunctionParticles()