18 InputParameters params = validParams<Function>();
19 params.addRequiredParam<RealVectorValue>(
21 "Start point of the excavation. This is an (x,y,z) point in the middle of the "
22 "coal face at the very beginning of the panel.");
23 params.addRequiredParam<Real>(
"start_time",
"Commencement time of the excavation");
24 params.addRequiredParam<RealVectorValue>(
"end_posn",
25 "End position of the excavation. This is "
26 "an (x,y,z) point in the middle of the coal "
27 "face at the very end of the panel.");
28 params.addRequiredParam<Real>(
"end_time",
"Time at the completion of the excavation");
29 params.addRequiredParam<Real>(
"active_length",
30 "This function is only active at a point if the "
31 "distance between the point and the coal face <= "
33 params.addParam<Real>(
"true_value",
35 "Return this value if a point is in the active zone. "
36 "This is usually used for controlling "
37 "permeability-changes");
38 params.addParam<Real>(
39 "deactivation_time", 1.0E30,
"Time at which this function is totally turned off");
40 params.addClassDescription(
"This function defines excavation geometry. It can be used to "
41 "enforce pressures at the boundary of excavations, and to record "
42 "fluid fluxes into excavations.");
47 : Function(parameters),
48 _start_posn(getParam<RealVectorValue>(
"start_posn")),
49 _start_time(getParam<Real>(
"start_time")),
50 _end_posn(getParam<RealVectorValue>(
"end_posn")),
51 _end_time(getParam<Real>(
"end_time")),
52 _active_length(getParam<Real>(
"active_length")),
53 _true_value(getParam<Real>(
"true_value")),
54 _deactivation_time(getParam<Real>(
"deactivation_time")),
55 _retreat_vel(_end_posn - _start_posn)
58 mooseError(
"Start time for excavation set to ",
60 " but this must be less than the end time, which is ",
76 RealVectorValue current_posn;
84 if (distance_into_goaf < 0)