Skip to content

Commit 8795488

Browse files
authored
Merge pull request #130 from PrincetonUniversity/user_defined_viscosity
pass meshblock in user defined diffusivity
2 parents 006c8d6 + c4fa31c commit 8795488

File tree

10 files changed

+22
-18
lines changed

10 files changed

+22
-18
lines changed

inputs/hydro/athinput.visc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,4 @@ iso_sound_speed = 1.0 # isothermal sound speed
5252
r0 = 1.0 # initial location of the shear flow
5353
t0 = 0.5 # time used in initial profile
5454
iprob = 0 # viscous shearing density column
55-
nuiso = 0.03
55+
nu_iso = 0.03

inputs/mhd/athinput.resist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,4 @@ gamma = 1.66667 # gamma = C_p/C_v
4949
<problem>
5050
amp = 1.0e-3 # Amplitude of B
5151
iprob = 0 # 0: default 1: diagonal B
52-
coef_o = 0.03 # Ohmic resistivity
52+
eta_ohm = 0.03 # Ohmic resistivity

src/athena.hpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,15 @@ typedef void (*MGBoundaryFunc_t)(AthenaArray<Real> &dst,Real time, int nvar,
139139
typedef void (*GravityBoundaryFunc_t)(MeshBlock *pmb, Coordinates *pco,
140140
AthenaArray<Real> &dst, Real time, Real dt,
141141
int is, int ie, int js, int je, int ks, int ke);
142-
typedef void (*ViscosityCoeff_t)(HydroDiffusion *phdif, const AthenaArray<Real> &w,
143-
const AthenaArray<Real> &bc, int is, int ie, int js, int je, int ks, int ke);
144-
typedef void (*ConductionCoeff_t)(HydroDiffusion *phdif, const AthenaArray<Real> &w,
145-
const AthenaArray<Real> &bc, int is, int ie, int js, int je, int ks, int ke);
146-
typedef void (*FieldDiffusionCoeff_t)(FieldDiffusion *pfdif, const AthenaArray<Real> &w,
147-
const AthenaArray<Real> &bmag, int is, int ie, int js, int je, int ks, int ke);
142+
typedef void (*ViscosityCoeff_t)(HydroDiffusion *phdif, MeshBlock *pmb,
143+
const AthenaArray<Real> &w, const AthenaArray<Real> &bc,
144+
int is, int ie, int js, int je, int ks, int ke);
145+
typedef void (*ConductionCoeff_t)(HydroDiffusion *phdif, MeshBlock *pmb,
146+
const AthenaArray<Real> &w, const AthenaArray<Real> &bc,
147+
int is, int ie, int js, int je, int ks, int ke);
148+
typedef void (*FieldDiffusionCoeff_t)(FieldDiffusion *pfdif, MeshBlock *pmb,
149+
const AthenaArray<Real> &w,
150+
const AthenaArray<Real> &bmag,
151+
int is, int ie, int js, int je, int ks, int ke);
148152

149153
#endif // ATHENA_HPP_

src/field/field_diffusion/diffusivity.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
//--------------------------------------------------------------------------------------
3939
// Magnetic diffusivity from constant coefficients
4040

41-
void ConstDiffusivity(FieldDiffusion *pfdif, const AthenaArray<Real> &w,
41+
void ConstDiffusivity(FieldDiffusion *pfdif, MeshBlock *pmb, const AthenaArray<Real> &w,
4242
const AthenaArray<Real> &bmag, const int is, const int ie, const int js,
4343
const int je, const int ks, const int ke) {
4444
if (pfdif->eta_ohm > 0.0) { // Ohmic resistivity is turned on

src/field/field_diffusion/field_diffusion.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ void FieldDiffusion::SetFieldDiffusivity(const AthenaArray<Real> &w,
214214
}
215215
}
216216
// set diffusivities
217-
CalcMagDiffCoeff_(this, w, bmag_, il, iu, jl, ju, kl, ku);
217+
CalcMagDiffCoeff_(this, pmb, w, bmag_, il, iu, jl, ju, kl, ku);
218218

219219
return;
220220
}

src/field/field_diffusion/field_diffusion.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class Coordinates;
2121

2222
class FieldDiffusion;
2323

24-
void ConstDiffusivity(FieldDiffusion *pfdif, const AthenaArray<Real> &w,
24+
void ConstDiffusivity(FieldDiffusion *pfdif, MeshBlock *pmb, const AthenaArray<Real> &w,
2525
const AthenaArray<Real> &bmag, int is, int ie, int js, int je, int ks, int ke);
2626

2727
// array indices for magnetic diffusivities

src/hydro/hydro_diffusion/conduction.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ void HydroDiffusion::ThermalFlux_aniso(const AthenaArray<Real> &p,
113113
//----------------------------------------------------------------------------------------
114114
// constant viscosity
115115

116-
void ConstConduction(HydroDiffusion *phdif, const AthenaArray<Real> &prim,
117-
const AthenaArray<Real> &bcc, int is, int ie, int js, int je, int ks, int ke) {
116+
void ConstConduction(HydroDiffusion *phdif, MeshBlock *pmb, const AthenaArray<Real> &prim,
117+
const AthenaArray<Real> &bcc, int is, int ie, int js, int je, int ks, int ke) {
118118
if (phdif->kappa_iso > 0.0) {
119119
for (int k=ks; k<=ke; ++k) {
120120
for (int j=js; j<=je; ++j) {

src/hydro/hydro_diffusion/hydro_diffusion.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,10 +249,10 @@ void HydroDiffusion::SetHydroDiffusivity(AthenaArray<Real> &w, AthenaArray<Real>
249249

250250
// set viscosity using func ptr
251251
if (nu_iso > 0.0 || nu_aniso > 0.0)
252-
CalcViscCoeff_(this, w, bc, il, iu, jl, ju, kl, ku);
252+
CalcViscCoeff_(this, pmb_, w, bc, il, iu, jl, ju, kl, ku);
253253
// set thermal conduction using func ptr
254254
if (kappa_iso > 0.0 || kappa_aniso > 0.0)
255-
CalcCondCoeff_(this, w, bc, il, iu, jl, ju, kl, ku);
255+
CalcCondCoeff_(this, pmb_, w, bc, il, iu, jl, ju, kl, ku);
256256

257257
return;
258258
}

src/hydro/hydro_diffusion/hydro_diffusion.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ class Coordinates;
2020
class HydroDiffusion;
2121

2222

23-
void ConstViscosity(HydroDiffusion *phdif, const AthenaArray<Real> &w,
23+
void ConstViscosity(HydroDiffusion *phdif, MeshBlock *pmb, const AthenaArray<Real> &w,
2424
const AthenaArray<Real> &bc, int is, int ie, int js, int je, int ks, int ke);
2525

26-
void ConstConduction(HydroDiffusion *phdif, const AthenaArray<Real> &w,
26+
void ConstConduction(HydroDiffusion *phdif, MeshBlock *pmb, const AthenaArray<Real> &w,
2727
const AthenaArray<Real> &bc, int is, int ie, int js, int je, int ks, int ke);
2828

2929

src/hydro/hydro_diffusion/viscosity.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ void HydroDiffusion::ViscousFlux_aniso(const AthenaArray<Real> &prim,
456456
//----------------------------------------------------------------------------------------
457457
// constant viscosity
458458

459-
void ConstViscosity(HydroDiffusion *phdif, const AthenaArray<Real> &prim,
459+
void ConstViscosity(HydroDiffusion *phdif, MeshBlock *pmb, const AthenaArray<Real> &prim,
460460
const AthenaArray<Real> &bcc, int is, int ie, int js, int je, int ks, int ke) {
461461
if (phdif->nu_iso > 0.0) {
462462
for (int k=ks; k<=ke; ++k) {

0 commit comments

Comments
 (0)