27 #include "NamespaceHeader.H" 45 Real topography =
Bx(x[0]) +
By(y,4.0e+3,5.0e+2,24.0e+3);
46 topography = max(topography, -720.0);
57 return B0 + B2*xx2 + B4*xx4 + B6*xx6;
60 Real
By(
const Real y,
const Real fc,
const Real dc,
const Real wc)
62 return dc/(1.0+exp(-2.0*(y-wc)/fc)) + dc/(1.0+exp(2.0*(y+wc)/fc));
73 Real m_originElevation;
74 Real m_coeff2, m_coeff4, m_coeff6;
78 Real a_coeff2, Real a_coeff4, Real a_coeff6)
79 : m_lengthScale(a_lengthScale),m_originElevation(a_originElevation),
80 m_coeff2(a_coeff2),m_coeff4(a_coeff4),m_coeff6(a_coeff6)
85 Real x2 = x[0]*x[0]/ (0.25*m_lengthScale*m_lengthScale);
89 return m_originElevation + m_coeff2 * x2 + m_coeff4 * x4 + m_coeff6*x6;
97 Real m_domainLength, m_domainWidth;
99 Real m_originElevation, m_alpha, m_sigma, m_s;
106 Real a_originElevation, Real a_alpha, Real a_sigma,
107 Real a_lengthScaleFactor,
108 Real a_coeff2, Real a_coeff4, Real a_coeff6)
109 : m_domainLength(a_domainLength), m_domainWidth(a_domainWidth),
110 m_originElevation(a_originElevation), m_alpha(a_alpha), m_sigma(a_sigma),
111 m_channelProfile(a_lengthScaleFactor*a_domainLength,
112 a_originElevation, a_coeff2,
115 m_s =1.0 / ( 2.0 * m_sigma * m_sigma);
121 Real y = x[1]-m_domainWidth/2.0;
122 Real G = std::exp(-y*y * m_s);
124 return (m_alpha*x[0] + m_originElevation)*(1.0 - G)
125 + m_channelProfile(x) * G;
155 virtual void define(
const ProblemDomain& a_domain,
160 const Real& a_seaLevel);
166 const Real& a_seaLevel);
196 void setBoundaryThickness(Real a_boundaryThickness)
198 { m_boundaryThickness = a_boundaryThickness; }
204 virtual void initialize(LevelData<FArrayBox>& a_U);
207 const RealVect& a_dx,
208 const RealVect& a_domainSize,
211 const int a_refRatio);
216 virtual void initializeIceGeometry(
LevelSigmaCS& a_coords,
217 const RealVect& a_dx,
218 const RealVect& a_domainSize,
221 const int a_refRatio);
227 virtual void primBC(FArrayBox& a_WGdnv,
228 const FArrayBox& a_Wextrap,
229 const FArrayBox& a_W,
231 const Side::LoHiSide& a_side,
241 void setBdrySlopes(FArrayBox& a_dW,
242 const FArrayBox& a_W,
250 void artViscBC(FArrayBox& a_F,
251 const FArrayBox& a_U,
252 const FArrayBox& a_divVel,
259 virtual RefCountedPtr<CompGridVTOBC> velocitySolveBC();
270 const ProblemDomain& a_domain,
271 Real a_time, Real a_dt)
276 virtual void setSurfaceHeightBCs(LevelData<FArrayBox>& a_zSurface,
278 const ProblemDomain& a_domain,
279 const RealVect& a_dx,
280 Real a_time, Real a_dt);
283 const ProblemDomain& a_domain,
284 const RealVect& a_dx,
285 Real a_time, Real a_dt);
328 MayDay::Error(
"invalid operator");
334 MayDay::Error(
"invalid operator");
338 #include "NamespaceFooter.H" Real operator()(const RealVect &x)
Definition: MarineIBC.H:42
Real m_seaLevel
Definition: MarineIBC.H:310
MISOMIPBedrockElevation()
Definition: MarineIBC.H:39
RefCountedPtr< CompGridVTOBC > m_velBCs
Definition: MarineIBC.H:321
Real m_originElevation
Definition: MarineIBC.H:303
Real operator()(const RealVect &x)
Definition: MarineIBC.H:118
Real m_thickness
ice sheet thickness (initially constant)
Definition: MarineIBC.H:306
static RealVect s_edgeThickness
ice thickness at edge of domain for use in computing velocity Bc's
Definition: MarineIBC.H:293
Real Bx(const Real x)
Definition: MarineIBC.H:51
Physical/domain initial and boundary conditions for ice-sheet problems.
Definition: IceThicknessIBC.H:84
Real operator()(const RealVect &x)
Definition: MarineIBC.H:83
Vector< RefCountedPtr< RealFunction< RealVect > > > m_bedrockFunction
Definition: MarineIBC.H:297
RefCountedPtr< RealFunction< RealVect > > m_thicknessFunction
Definition: MarineIBC.H:298
bool m_paramsSet
Definition: MarineIBC.H:316
Real By(const Real y, const Real fc, const Real dc, const Real wc)
Definition: MarineIBC.H:60
Physical/domain initial and boundary conditions.
Definition: MarineIBC.H:137
KatzBedrockElevation(Real a_domainLength, Real a_domainWidth, Real a_originElevation, Real a_alpha, Real a_sigma, Real a_lengthScaleFactor, Real a_coeff2, Real a_coeff4, Real a_coeff6)
Definition: MarineIBC.H:105
bool m_isBCsetUp
Definition: MarineIBC.H:313
Basic Sigma fourth-order coordinate system on an AMR level.
Definition: LevelSigmaCS.H:48
virtual void modifyVelocityRHS(LevelData< FArrayBox > &a_rhs, LevelSigmaCS &a_coords, const ProblemDomain &a_domain, Real a_time, Real a_dt)
if appropriate, modify velocity solve RHS in a problem-dependent way.
Definition: MarineIBC.H:268
SchoofBedrockElevation(Real a_lengthScale, Real a_originElevation, Real a_coeff2, Real a_coeff4, Real a_coeff6)
Definition: MarineIBC.H:77
RealVect m_domainSize
Definition: MarineIBC.H:308
Definition: MarineIBC.H:95
Definition: MarineIBC.H:30
RealVect m_slope
Definition: MarineIBC.H:300
Definition: MarineIBC.H:70
Definition: RealFunction.H:22