- num_pointsThe number of points to sample along the line
C++ Type:unsigned int
Description:The number of points to sample along the line
- end_pointThe ending of the line
C++ Type:libMesh::Point
Description:The ending of the line
- start_pointThe beginning of the line
C++ Type:libMesh::Point
Description:The beginning of the line
- variableThe names of the variables that this VectorPostprocessor operates on
C++ Type:std::vector
Description:The names of the variables that this VectorPostprocessor operates on
- sort_byWhat to sort the samples by
C++ Type:MooseEnum
Description:What to sort the samples by
LineValueSampler
!syntax description /VectorPostprocessors/LineValueSampler
Description LineValueSampler samples the given variables/auxvariables at equally spaced points between the start and end points of a user provided line segment. The sampled points and the values are written to a csv file at every time step. The sorting order of the points can be changed using the sort_by
parameter which takes x
, y
, z
or id
(increasing distance from start point) as input.
LineValueSampler could also be used as an UserObject with the MultiAppUserObjectTransfer to transfer values to AuxVariables in the master or sub application. When using the LineValueSampler with the MultiAppUserObjectTransfer, an error is generated if more than one variable is supplied as input to the LineValueSampler as the transfer currently works only with one variable. Also, when calculating the value of the UserObject (LineValueSampler in this case) at a given point, the point is first projected onto the user defined line segment and the interpolated value at the projected point is returned as output. If the projected point falls outside the line segment, infinity is returned as output.
If the variable to be plotted needs to be scaled, this can be done by supplying a postprocessor. Caution should be used to make sure that the postprocessor is being evaluated in such a way that its value will not be lagged when being called by LineValueSampler.
Input Parameters
- scaling1The postprocessor that the variables are multiplied with
Default:1
C++ Type:PostprocessorName
Options:
Description:The postprocessor that the variables are multiplied with
- execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM.
Default:TIMESTEP_END
C++ Type:ExecFlagEnum
Options:NONE INITIAL LINEAR NONLINEAR TIMESTEP_END TIMESTEP_BEGIN FINAL CUSTOM
Description:The list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM.
- _is_broadcastTrue
Default:True
C++ Type:bool
Options:
- contains_complete_historyFalseSet this flag to indicate that the values in all vectors declared by this VPP represent a time history (e.g. with each invocation, new values are added and old values are never removed). This changes the output so that only a single file is output and updated with each invocation
Default:False
C++ Type:bool
Options:
Description:Set this flag to indicate that the values in all vectors declared by this VPP represent a time history (e.g. with each invocation, new values are added and old values are never removed). This changes the output so that only a single file is output and updated with each invocation
Optional Parameters
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Options:
Description:Set the enabled status of the MooseObject.
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Options:
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
- outputsVector of output names were you would like to restrict the output of variables(s) associated with this object
C++ Type:std::vector
Options:
Description:Vector of output names were you would like to restrict the output of variables(s) associated with this object
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector
Options:
Description:Adds user-defined labels for accessing object parameters via control logic.
- allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
Default:False
C++ Type:bool
Options:
Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
- force_preauxFalseForces the GeneralUserObject to be executed in PREAUX
Default:False
C++ Type:bool
Options:
Description:Forces the GeneralUserObject to be executed in PREAUX
Advanced Parameters
Input Files
- modules/porous_flow/test/tests/dirackernels/bh07.i
- test/tests/vectorpostprocessors/line_value_sampler/csv_delimiter.i
- modules/porous_flow/test/tests/relperm/corey3.i
- modules/porous_flow/test/tests/flux_limited_TVD_advection/fltvd_2D_trimesh.i
- test/tests/vectorpostprocessors/least_squares_fit_history/least_squares_fit_history.i
- test/tests/vectorpostprocessors/least_squares_fit/least_squares_fit.i
- modules/tensor_mechanics/test/tests/static_deformations/cosserat_glide.i
- modules/porous_flow/test/tests/numerical_diffusion/fully_saturated_action_KT.i
- modules/combined/examples/phase_field-mechanics/kks_mechanics_VTS.i
- test/tests/executioners/nullspace/singular.i
- test/tests/outputs/postprocessor_final/postprocessor_final.i
- modules/porous_flow/examples/flow_through_fractured_media/coarse.i
- test/tests/executioners/nullspace/singular_contaminated.i
- modules/porous_flow/examples/flow_through_fractured_media/coarse_3D.i
- modules/tensor_mechanics/test/tests/static_deformations/beam_cosserat_01.i
- modules/porous_flow/test/tests/capillary_pressure/brooks_corey2.i
- modules/porous_flow/test/tests/broadbridge_white/rd01.i
- modules/porous_flow/test/tests/numerical_diffusion/no_action.i
- modules/porous_flow/test/tests/flux_limited_TVD_advection/fltvd_1D.i
- modules/porous_flow/test/tests/flux_limited_TVD_advection/fltvd_3D.i
- test/tests/vectorpostprocessors/time_data/time_data.i
- modules/phase_field/test/tests/misc/equal_gradient_lagrange.i
- modules/porous_flow/test/tests/relperm/corey1.i
- modules/porous_flow/test/tests/relperm/corey2.i
- modules/porous_flow/test/tests/numerical_diffusion/fltvd_none.i
- modules/porous_flow/test/tests/flux_limited_TVD_pflow/pffltvd_2D_trimesh.i
- test/tests/bcs/vectorpostprocessor/vectorpostprocessor.i
- modules/porous_flow/examples/flow_through_fractured_media/fine_transient.i
- modules/porous_flow/test/tests/newton_cooling/nc06.i
- modules/combined/test/tests/beam_eigenstrain_transfer/subapp_err_3.i
- modules/tensor_mechanics/test/tests/static_deformations/beam_cosserat_02_apply_stress.i
- modules/level_set/test/tests/kernels/olsson_reinitialization/olsson_1d.i
- modules/porous_flow/test/tests/sinks/injection_production_eg.i
- modules/porous_flow/test/tests/relperm/corey4.i
- modules/porous_flow/examples/flow_through_fractured_media/fine_thick_fracture_transient.i
- modules/porous_flow/test/tests/rogers_stallybrass_clements/rsc01.i
- modules/porous_flow/test/tests/relperm/unity.i
- modules/porous_flow/test/tests/thm_rehbinder/free_outer.i
- modules/porous_flow/test/tests/pressure_pulse/pressure_pulse_1d_2phasePSVG.i
- modules/porous_flow/test/tests/flux_limited_TVD_advection/fltvd_1D_adaptivity.i
- modules/porous_flow/test/tests/broadbridge_white/bw02.i
- modules/porous_flow/test/tests/flux_limited_TVD_advection/fltvd_2D_blocks.i
- modules/porous_flow/test/tests/relperm/brooks_corey2.i
- modules/phase_field/examples/kim-kim-suzuki/kks_example_noflux.i
- modules/porous_flow/test/tests/relperm/vangenuchten1.i
- modules/heat_conduction/test/tests/semiconductor_linear_conductivity/steinhart-hart_linear.i
- modules/porous_flow/test/tests/pressure_pulse/pressure_pulse_1d_2phasePS.i
- modules/porous_flow/test/tests/numerical_diffusion/pffltvd.i
- modules/porous_flow/test/tests/flux_limited_TVD_pflow/pffltvd_2D.i
- modules/porous_flow/test/tests/newton_cooling/nc02.i
- modules/porous_flow/test/tests/newton_cooling/nc04.i
- modules/combined/test/tests/beam_eigenstrain_transfer/subapp_err_2.i
- modules/porous_flow/test/tests/newton_cooling/nc08.i
- modules/porous_flow/test/tests/broadbridge_white/rd03.i
- test/tests/outputs/hide_vector_pp/hide_vector_pp.i
- modules/porous_flow/test/tests/broadbridge_white/wli01.i
- modules/porous_flow/test/tests/relperm/brooks_corey1.i
- test/tests/auxkernels/diffusion_flux/diffusion_flux.i
- modules/porous_flow/test/tests/flux_limited_TVD_pflow/pffltvd_3D.i
- python/peacock/tests/input_tab/InputTree/gold/simple_diffusion_vp.i
- modules/porous_flow/test/tests/flux_limited_TVD_pflow/pffltvd_1D_adaptivity.i
- modules/porous_flow/test/tests/rogers_stallybrass_clements/rsc02.i
- modules/porous_flow/test/tests/numerical_diffusion/pffltvd_action.i
- modules/porous_flow/test/tests/relperm/vangenuchten2.i
- modules/porous_flow/test/tests/capillary_pressure/vangenuchten3.i
- modules/tensor_mechanics/test/tests/eigenstrain/reducedOrderRZQuadratic.i
- modules/porous_flow/test/tests/numerical_diffusion/fully_saturated_action.i
- modules/combined/test/tests/beam_eigenstrain_transfer/subapp_err_4.i
- modules/tensor_mechanics/test/tests/static_deformations/cosserat_glide_fake_plastic.i
- modules/combined/test/tests/beam_eigenstrain_transfer/subapp2_uo_transfer.i
- modules/porous_flow/test/tests/capillary_pressure/brooks_corey1.i
- modules/porous_flow/test/tests/numerical_diffusion/framework.i
- modules/rdg/test/tests/advection_1d/rdgP0.i
- modules/porous_flow/test/tests/pressure_pulse/pressure_pulse_1d_2phasePS_KT.i
- modules/porous_flow/test/tests/newton_cooling/nc01.i
- test/tests/vectorpostprocessors/line_value_sampler/line_value_sampler.i
- python/peacock/tests/common/time_data.i
- test/tests/functions/vector_postprocessor_function/vector_postprocessor_function.i
- modules/combined/test/tests/joule_heating_heat/jouleheating_heat.i
- modules/porous_flow/test/tests/broadbridge_white/rd02.i
- modules/porous_flow/test/tests/broadbridge_white/bw01.i
- modules/porous_flow/test/tests/broadbridge_white/wli02.i
- modules/porous_flow/test/tests/thm_rehbinder/fixed_outer_rz.i
- modules/porous_flow/test/tests/flux_limited_TVD_pflow/pffltvd_1D.i
- modules/porous_flow/test/tests/numerical_diffusion/fltvd.i
- modules/porous_flow/test/tests/capillary_pressure/vangenuchten2.i
- modules/level_set/test/tests/kernels/advection/advection_mms.i
- modules/combined/test/tests/beam_eigenstrain_transfer/subapp1_uo_transfer.i
- test/tests/outputs/csv_final_and_latest/final.i
- modules/porous_flow/test/tests/thm_rehbinder/fixed_outer.i
- modules/tensor_mechanics/test/tests/eigenstrain/reducedOrderRZLinear.i
- modules/porous_flow/test/tests/pressure_pulse/pressure_pulse_1d_2phasePSVG2.i
- test/tests/outputs/csv_final_and_latest/latest.i
- modules/porous_flow/test/tests/numerical_diffusion/fltvd_no_antidiffusion.i
- modules/tensor_mechanics/test/tests/static_deformations/beam_cosserat_01_slippery.i
- modules/porous_flow/test/tests/capillary_pressure/vangenuchten1.i
- modules/porous_flow/test/tests/flux_limited_TVD_advection/fltvd_2D.i
modules/porous_flow/test/tests/dirackernels/bh07.i
# Comparison with analytical solution for cylindrically-symmetric situation
[Mesh]
type = FileMesh
file = bh07_input.e
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Functions]
[./dts]
type = PiecewiseLinear
y = '1000 10000'
x = '100 1000'
[../]
[]
[Variables]
[./pp]
initial_condition = 1E7
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pp
[../]
[./fflux]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pp
gravity = '0 0 0'
[../]
[]
[BCs]
[./fix_outer]
type = DirichletBC
boundary = perimeter
variable = pp
value = 1E7
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'pp'
number_fluid_phases = 1
number_fluid_components = 1
[../]
[./borehole_total_outflow_mass]
type = PorousFlowSumQuantity
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
m = 0.8
alpha = 1e-5
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e9
viscosity = 1e-3
density0 = 1000
thermal_expansion = 0
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = pp
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-11 0 0 0 1E-11 0 0 0 1E-11'
[../]
[./relperm]
type = PorousFlowRelativePermeabilityFLAC
m = 2
phase = 0
[../]
[]
[DiracKernels]
[./bh]
type = PorousFlowPeacemanBorehole
variable = pp
SumQuantityUO = borehole_total_outflow_mass
point_file = bh07.bh
fluid_phase = 0
bottom_p_or_t = 0
unit_weight = '0 0 0'
use_mobility = true
re_constant = 0.1594 # use Chen and Zhang version
character = 2 # double the strength because bh07.bh only fills half the mesh
[../]
[]
[Postprocessors]
[./bh_report]
type = PorousFlowPlotQuantity
uo = borehole_total_outflow_mass
execute_on = 'initial timestep_end'
[../]
[./fluid_mass]
type = PorousFlowFluidMass
execute_on = 'initial timestep_end'
[../]
[]
[VectorPostprocessors]
[./pp]
type = LineValueSampler
variable = pp
start_point = '0 0 0'
end_point = '300 0 0'
sort_by = x
num_points = 300
execute_on = timestep_end
[../]
[]
[Preconditioning]
[./usual]
type = SMP
full = true
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it -ksp_max_it'
petsc_options_value = 'bcgs bjacobi 1E-10 1E-10 10000 30'
[../]
[]
[Executioner]
type = Transient
end_time = 1E3
solve_type = NEWTON
[./TimeStepper]
# get only marginally better results for smaller time steps
type = FunctionDT
function = dts
[../]
[]
[Outputs]
file_base = bh07
[./along_line]
type = CSV
execute_on = final
[../]
[./exodus]
type = Exodus
execute_on = 'initial final'
[../]
[]
test/tests/vectorpostprocessors/line_value_sampler/csv_delimiter.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./v]
initial_condition = 1.23456789
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[VectorPostprocessors]
[./line_sample]
type = LineValueSampler
variable = 'u v'
start_point = '0 0.5 0'
end_point = '1 0.5 0'
num_points = 11
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[./csv]
type = CSV
delimiter = ' '
precision = 5
[../]
[]
modules/porous_flow/test/tests/relperm/corey3.i
# Test Corey relative permeability curve by varying saturation over the mesh
# Residual saturation of phase 0: s0r = 0.2
# Residual saturation of phase 1: s1r = 0.3
[Mesh]
type = GeneratedMesh
dim = 1
nx = 20
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./p0]
initial_condition = 1e6
[../]
[./s1]
family = LAGRANGE
order = FIRST
[../]
[]
[AuxVariables]
[./s0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./s1aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr1aux]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./s0]
type = PorousFlowPropertyAux
property = saturation
phase = 0
variable = s0aux
[../]
[./s1]
type = PorousFlowPropertyAux
property = saturation
phase = 1
variable = s1aux
[../]
[./kr0]
type = PorousFlowPropertyAux
property = relperm
phase = 0
variable = kr0aux
[../]
[./kr1]
type = PorousFlowPropertyAux
property = relperm
phase = 1
variable = kr1aux
[../]
[]
[Functions]
[./s1]
type = ParsedFunction
value = x
[../]
[]
[ICs]
[./s1]
type = FunctionIC
variable = s1
function = s1
[../]
[]
[Kernels]
[./p0]
type = Diffusion
variable = p0
[../]
[./s1]
type = Diffusion
variable = s1
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'p0 s1'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
pc = 0
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = p0
phase1_saturation = s1
capillary_pressure = pc
[../]
[./kr0]
type = PorousFlowRelativePermeabilityCorey
phase = 0
n = 2
s_res = 0.2
sum_s_res = 0.5
[../]
[./kr1]
type = PorousFlowRelativePermeabilityCorey
phase = 1
n = 2
s_res = 0.3
sum_s_res = 0.5
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = 's0aux s1aux kr0aux kr1aux'
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 20
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-8
[]
[BCs]
[./sleft]
type = DirichletBC
variable = s1
value = 0
boundary = left
[../]
[./sright]
type = DirichletBC
variable = s1
value = 1
boundary = right
[../]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
modules/porous_flow/test/tests/flux_limited_TVD_advection/fltvd_2D_trimesh.i
# Using Flux-Limited TVD Advection ala Kuzmin and Turek, with antidiffusion from superbee flux limiting
# 2D version
[Mesh]
type = FileMesh
file = trimesh.msh
[]
[GlobalParams]
block = '50'
[]
[Variables]
[./tracer]
[../]
[]
[ICs]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.305,0,1))'
[../]
[]
[Kernels]
[./mass_dot]
type = MassLumpedTimeDerivative
variable = tracer
[../]
[./flux]
type = FluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = fluo
[../]
[]
[UserObjects]
[./fluo]
type = AdvectiveFluxCalculatorConstantVelocity
flux_limiter_type = superbee
u = tracer
velocity = '0.1 0 0'
[../]
[]
[BCs]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_tracer]
# Ideally, an OutflowBC would be used, but that does not exist in the framework
# In 1D VacuumBC is the same as OutflowBC, with the alpha parameter being twice the velocity
type = VacuumBC
boundary = right
alpha = 0.2 # 2 * velocity
variable = tracer
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0.04 0'
num_points = 101
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
timestep_tolerance = 1E-3
[]
[Outputs]
csv = true
print_linear_residuals = false
execute_on = final
[]
test/tests/vectorpostprocessors/least_squares_fit_history/least_squares_fit_history.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[./v]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = FunctionPresetBC
variable = u
boundary = right
function = 't'
[../]
[./left_v]
type = FunctionPresetBC
variable = v
boundary = left
function = 't'
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = right
value = 0
[../]
[]
[VectorPostprocessors]
[./line_sample]
type = LineValueSampler
variable = 'u v'
start_point = '0 0.5 0'
end_point = '1 0.5 0'
num_points = 11
sort_by = id
outputs = none
[../]
[./least_squares_fit_coeffs]
type = LeastSquaresFitHistory
vectorpostprocessor = line_sample
x_name = 'id'
y_name = 'u'
order = 1
[../]
[./shift_and_scale_x_least_squares_fit_coeffs]
type = LeastSquaresFitHistory
vectorpostprocessor = line_sample
x_name = 'id'
y_name = 'u'
x_shift = 1
x_scale = 10
order = 1
[../]
[./shift_and_scale_y_least_squares_fit_coeffs]
type = LeastSquaresFitHistory
vectorpostprocessor = line_sample
x_name = 'id'
y_name = 'u'
y_shift = 1
y_scale = 10
order = 1
[../]
[]
[Executioner]
type = Transient
start_time = 0.0
num_steps = 3
dt = 1.0
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
file_base = out
execute_on = 'timestep_end'
csv = true
[]
test/tests/vectorpostprocessors/least_squares_fit/least_squares_fit.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[./v]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[./left_v]
type = DirichletBC
variable = v
boundary = left
value = 1
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = right
value = 0
[../]
[]
[VectorPostprocessors]
[./line_sample]
type = LineValueSampler
variable = 'u v'
start_point = '0 0.5 0'
end_point = '1 0.5 0'
num_points = 11
sort_by = id
outputs = none
[../]
[./least_squares_fit_sample]
type = LeastSquaresFit
vectorpostprocessor = line_sample
x_name = 'id'
y_name = 'u'
order = 1
num_samples = 20
output = samples
[../]
[./least_squares_fit_coeffs]
type = LeastSquaresFit
vectorpostprocessor = line_sample
x_name = 'id'
y_name = 'u'
order = 1
output = coefficients
[../]
[./shift_and_scale_x_least_squares_fit_sample]
type = LeastSquaresFit
vectorpostprocessor = line_sample
x_name = 'id'
y_name = 'u'
x_shift = 1
x_scale = 10
order = 1
num_samples = 20
output = samples
[../]
[./shift_and_scale_x_least_squares_fit_coeffs]
type = LeastSquaresFit
vectorpostprocessor = line_sample
x_name = 'id'
y_name = 'u'
x_shift = 1
x_scale = 10
order = 1
output = coefficients
[../]
[./shift_and_scale_y_least_squares_fit_sample]
type = LeastSquaresFit
vectorpostprocessor = line_sample
x_name = 'id'
y_name = 'u'
y_shift = 1
y_scale = 10
order = 1
num_samples = 20
output = samples
[../]
[./shift_and_scale_y_least_squares_fit_coeffs]
type = LeastSquaresFit
vectorpostprocessor = line_sample
x_name = 'id'
y_name = 'u'
y_shift = 1
y_scale = 10
order = 1
output = coefficients
[../]
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
file_base = out
execute_on = 'timestep_end'
csv = true
[]
modules/tensor_mechanics/test/tests/static_deformations/cosserat_glide.i
# Example taken from Appendix A of
# S Forest "Mechanics of Cosserat media An introduction". Available from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.154.4476&rep=rep1&type=pdf
#
# Analytically, the displacements are
# wc_z = B sinh(w_e y)
# disp_x = (2 mu_c B / w_e / (mu + mu_c)) (1 - cosh(w_e y))
# with w_e^2 = 2 mu mu_c / be / (mu + mu_c)
# and B = arbitrary integration constant
#
# Also, the only nonzero stresses are
# m_zy = 2 B be w_e cosh(w_e y)
# si_yx = -4 mu mu_c/(mu + mu_c) B sinh(w_e y)
#
# MOOSE gives these stress components correctly.
# However, it also gives a seemingly non-zero si_xy
# component. Upon increasing the resolution of the
# mesh (ny=10000, for example), the stress components
# are seen to limit correctly to the above forumlae
#
# I use mu = 2, mu_c = 3, be = 0.6, so w_e = 2
# Also i use B = 1, so at y = 1
# wc_z = 3.626860407847
# disp_x = -1.65731741465
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 100
ymax = 1
nz = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[./wc_z]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./z_couple]
type = StressDivergenceTensors
variable = wc_z
displacements = 'wc_x wc_y wc_z'
component = 2
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[./z_moment]
type = MomentBalancing
variable = wc_z
component = 2
[../]
[]
[BCs]
# zmin is called back
# zmax is called front
# ymin is called bottom
# ymax is called top
# xmin is called left
# xmax is called right
[./disp_x_zero_at_y_zero]
type = PresetBC
variable = disp_x
boundary = bottom
value = 0
[../]
[./disp_x_fixed_at_y_max]
type = PresetBC
variable = disp_x
boundary = top
value = -1.65731741465
[../]
[./no_dispy]
type = PresetBC
variable = disp_y
boundary = 'back front bottom top left right'
value = 0
[../]
[./no_dispz]
type = PresetBC
variable = disp_z
boundary = 'back front bottom top left right'
value = 0
[../]
[./no_wc_x]
type = PresetBC
variable = wc_x
boundary = 'back front bottom top left right'
value = 0
[../]
[./no_wc_y]
type = PresetBC
variable = wc_y
boundary = 'back front bottom top left right'
value = 0
[../]
[./wc_z_zero_at_y_zero]
type = PresetBC
variable = wc_z
boundary = bottom
value = 0
[../]
[./wc_z_fixed_at_y_max]
type = PresetBC
variable = wc_z
boundary = top
value = 3.626860407847
[../]
[]
[AuxVariables]
[./stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./couple_stress_xx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xx
index_i = 0
index_j = 0
[../]
[./couple_stress_xy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xy
index_i = 0
index_j = 1
[../]
[./couple_stress_xz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xz
index_i = 0
index_j = 2
[../]
[./couple_stress_yx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yx
index_i = 1
index_j = 0
[../]
[./couple_stress_yy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yy
index_i = 1
index_j = 1
[../]
[./couple_stress_yz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yz
index_i = 1
index_j = 2
[../]
[./couple_stress_zx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zx
index_i = 2
index_j = 0
[../]
[./couple_stress_zy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zy
index_i = 2
index_j = 1
[../]
[./couple_stress_zz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zz
index_i = 2
index_j = 2
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeCosseratElasticityTensor
B_ijkl = '1.1 0.6 0.6' # In Forest notation this is alpha=1.1 (this is unimportant), beta=gamma=0.6.
fill_method_bending = 'general_isotropic'
E_ijkl = '1 2 3' # In Forest notation this is lambda=1 (this is unimportant), mu=2, mu_c=3
fill_method = 'general_isotropic'
[../]
[./strain]
type = ComputeCosseratSmallStrain
[../]
[./stress]
type = ComputeCosseratLinearElasticStress
[../]
[]
[VectorPostprocessors]
[./soln]
type = LineValueSampler
sort_by = y
variable = 'disp_x wc_z stress_yx couple_stress_zy'
start_point = '0 0 0'
end_point = '0 1 0'
num_points = 11
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol'
petsc_options_value = 'gmres asm lu 1E-10 1E-14 10 1E-15 1E-10'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
num_steps = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = cosserat_glide_out
exodus = true
csv = true
[]
modules/porous_flow/test/tests/numerical_diffusion/fully_saturated_action_KT.i
# Using the fully-saturated action (with mass lumping) and KT stabilization using superbee
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmin = 0
xmax = 1
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./porepressure]
[../]
[./tracer]
[../]
[]
[ICs]
[./porepressure]
type = FunctionIC
variable = porepressure
function = '1 - x'
[../]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[PorousFlowFullySaturated]
porepressure = porepressure
coupling_type = Hydro
gravity = '0 0 0'
fp = the_simple_fluid
mass_fraction_vars = tracer
stabilization = KT
flux_limiter_type = superbee
[]
[BCs]
[./constant_injection_porepressure]
type = PresetBC
variable = porepressure
value = 1
boundary = left
[../]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_component_1]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 1
use_mobility = true
flux_function = 1E3
[../]
[./remove_component_0]
type = PorousFlowPiecewiseLinearSink
variable = tracer
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 0
use_mobility = true
flux_function = 1E3
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E9
viscosity = 1.0
density0 = 1000.0
[../]
[../]
[]
[Materials]
[./porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-2 0 0 0 1E-2 0 0 0 1E-2'
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 101
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
nl_abs_tol = 1E-8
timestep_tolerance = 1E-3
[]
[Outputs]
exodus = true
csv = true
print_linear_residuals = false
execute_on = final
[]
modules/combined/examples/phase_field-mechanics/kks_mechanics_VTS.i
# KKS phase-field model coupled with elasticity using the Voigt-Taylor scheme as
# described in L.K. Aagesen et al., Computational Materials Science, 140, 10-21 (2017)
# Original run #170329e
[Mesh]
type = GeneratedMesh
dim = 3
nx = 640
ny = 1
nz = 1
xmin = -10
xmax = 10
ymin = 0
ymax = 0.03125
zmin = 0
zmax = 0.03125
elem_type = HEX8
[]
[Variables]
# order parameter
[./eta]
order = FIRST
family = LAGRANGE
[../]
# solute concentration
[./c]
order = FIRST
family = LAGRANGE
[../]
# chemical potential
[./w]
order = FIRST
family = LAGRANGE
[../]
# solute phase concentration (matrix)
[./cm]
order = FIRST
family = LAGRANGE
[../]
# solute phase concentration (precipitate)
[./cp]
order = FIRST
family = LAGRANGE
[../]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[ICs]
[./eta_ic]
variable = eta
type = FunctionIC
function = ic_func_eta
block = 0
[../]
[./c_ic]
variable = c
type = FunctionIC
function = ic_func_c
block = 0
[../]
[./w_ic]
variable = w
type = ConstantIC
value = 0.00991
block = 0
[../]
[./cm_ic]
variable = cm
type = ConstantIC
value = 0.131
block = 0
[../]
[./cp_ic]
variable = cp
type = ConstantIC
value = 0.236
block = 0
[../]
[]
[Functions]
[./ic_func_eta]
type = ParsedFunction
value = '0.5*(1.0+tanh((x)/delta_eta/sqrt(2.0)))'
vars = 'delta_eta'
vals = '0.8034'
[../]
[./ic_func_c]
type = ParsedFunction
value = '0.2388*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))^3*(6*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))^2-15*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))+10)+0.1338*(1-(0.5*(1.0+tanh(x/delta/sqrt(2.0))))^3*(6*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))^2-15*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))+10))'
vars = 'delta'
vals = '0.8034'
[../]
[./psi_eq_int]
type = ParsedFunction
value = 'volume*psi_alpha'
vars = 'volume psi_alpha'
vals = 'volume psi_alpha'
[../]
[./gamma]
type = ParsedFunction
value = '(psi_int - psi_eq_int) / dy / dz'
vars = 'psi_int psi_eq_int dy dz'
vals = 'psi_int psi_eq_int 0.03125 0.03125'
[../]
[]
[AuxVariables]
[./sigma11]
order = CONSTANT
family = MONOMIAL
[../]
[./sigma22]
order = CONSTANT
family = MONOMIAL
[../]
[./sigma33]
order = CONSTANT
family = MONOMIAL
[../]
[./e11]
order = CONSTANT
family = MONOMIAL
[../]
[./e12]
order = CONSTANT
family = MONOMIAL
[../]
[./e22]
order = CONSTANT
family = MONOMIAL
[../]
[./e33]
order = CONSTANT
family = MONOMIAL
[../]
[./e_el11]
order = CONSTANT
family = MONOMIAL
[../]
[./e_el12]
order = CONSTANT
family = MONOMIAL
[../]
[./e_el22]
order = CONSTANT
family = MONOMIAL
[../]
[./f_el]
order = CONSTANT
family = MONOMIAL
[../]
[./eigen_strain00]
order = CONSTANT
family = MONOMIAL
[../]
[./Fglobal]
order = CONSTANT
family = MONOMIAL
[../]
[./psi]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./matl_sigma11]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = sigma11
[../]
[./matl_sigma22]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = sigma22
[../]
[./matl_sigma33]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = sigma33
[../]
[./matl_e11]
type = RankTwoAux
rank_two_tensor = total_strain
index_i = 0
index_j = 0
variable = e11
[../]
[./matl_e12]
type = RankTwoAux
rank_two_tensor = total_strain
index_i = 0
index_j = 1
variable = e12
[../]
[./matl_e22]
type = RankTwoAux
rank_two_tensor = total_strain
index_i = 1
index_j = 1
variable = e22
[../]
[./matl_e33]
type = RankTwoAux
rank_two_tensor = total_strain
index_i = 2
index_j = 2
variable = e33
[../]
[./f_el]
type = MaterialRealAux
variable = f_el
property = f_el_mat
execute_on = timestep_end
[../]
[./GlobalFreeEnergy]
variable = Fglobal
type = KKSGlobalFreeEnergy
fa_name = fm
fb_name = fp
w = 0.0264
kappa_names = kappa
interfacial_vars = eta
[../]
[./psi_potential]
variable = psi
type = ParsedAux
args = 'Fglobal w c f_el sigma11 e11'
function = 'Fglobal - w*c + f_el - sigma11*e11'
[../]
[]
[BCs]
[./left_x]
type = PresetBC
variable = disp_x
boundary = left
value = 0
[../]
[./right_x]
type = PresetBC
variable = disp_x
boundary = right
value = 0
[../]
[./front_y]
type = PresetBC
variable = disp_y
boundary = front
value = 0
[../]
[./back_y]
type = PresetBC
variable = disp_y
boundary = back
value = 0
[../]
[./top_z]
type = PresetBC
variable = disp_z
boundary = top
value = 0
[../]
[./bottom_z]
type = PresetBC
variable = disp_z
boundary = bottom
value = 0
[../]
[]
[Materials]
# Chemical free energy of the matrix
[./fm]
type = DerivativeParsedMaterial
f_name = fm
args = 'cm'
function = '6.55*(cm-0.13)^2'
[../]
# Elastic energy of the matrix
[./elastic_free_energy_m]
type = ElasticEnergyMaterial
base_name = matrix
f_name = fe_m
args = ' '
outputs = exodus
[../]
# Total free energy of the matrix
[./Total_energy_matrix]
type = DerivativeSumMaterial
f_name = f_total_matrix
sum_materials = 'fm fe_m'
args = 'cm'
[../]
# Free energy of the precipitate phase
[./fp]
type = DerivativeParsedMaterial
f_name = fp
args = 'cp'
function = '6.55*(cp-0.235)^2'
[../]
# Elastic energy of the precipitate
[./elastic_free_energy_p]
type = ElasticEnergyMaterial
base_name = ppt
f_name = fe_p
args = ' '
outputs = exodus
[../]
# Total free energy of the precipitate
[./Total_energy_ppt]
type = DerivativeSumMaterial
f_name = f_total_ppt
sum_materials = 'fp fe_p'
args = 'cp'
[../]
# Total elastic energy
[./Total_elastic_energy]
type = DerivativeTwoPhaseMaterial
eta = eta
f_name = f_el_mat
fa_name = fe_m
fb_name = fe_p
outputs = exodus
W = 0
[../]
# h(eta)
[./h_eta]
type = SwitchingFunctionMaterial
h_order = HIGH
eta = eta
[../]
# g(eta)
[./g_eta]
type = BarrierFunctionMaterial
g_order = SIMPLE
eta = eta
[../]
# constant properties
[./constants]
type = GenericConstantMaterial
prop_names = 'M L kappa misfit'
prop_values = '0.7 0.7 0.01704 0.00377'
[../]
#Mechanical properties
[./Stiffness_matrix]
type = ComputeElasticityTensor
C_ijkl = '103.3 74.25 74.25 103.3 74.25 103.3 46.75 46.75 46.75'
base_name = matrix
fill_method = symmetric9
[../]
[./Stiffness_ppt]
type = ComputeElasticityTensor
C_ijkl = '100.7 71.45 71.45 100.7 71.45 100.7 50.10 50.10 50.10'
base_name = ppt
fill_method = symmetric9
[../]
[./stress_matrix]
type = ComputeLinearElasticStress
base_name = matrix
[../]
[./stress_ppt]
type = ComputeLinearElasticStress
base_name = ppt
[../]
[./strain_matrix]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
base_name = matrix
[../]
[./strain_ppt]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
base_name = ppt
eigenstrain_names = 'eigenstrain_ppt'
[../]
[./eigen_strain]
type = ComputeEigenstrain
base_name = ppt
eigen_base = '1 1 1 0 0 0'
prefactor = misfit
eigenstrain_name = 'eigenstrain_ppt'
[../]
[./global_stress]
type = TwoPhaseStressMaterial
base_A = matrix
base_B = ppt
[../]
[./global_strain]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
# enforce c = (1-h(eta))*cm + h(eta)*cp
[./PhaseConc]
type = KKSPhaseConcentration
ca = cm
variable = cp
c = c
eta = eta
[../]
# enforce pointwise equality of chemical potentials
[./ChemPotVacancies]
type = KKSPhaseChemicalPotential
variable = cm
cb = cp
fa_name = f_total_matrix
fb_name = f_total_ppt
[../]
#
# Cahn-Hilliard Equation
#
[./CHBulk]
type = KKSSplitCHCRes
variable = c
ca = cm
cb = cp
fa_name = f_total_matrix
fb_name = f_total_ppt
w = w
[../]
[./dcdt]
type = CoupledTimeDerivative
variable = w
v = c
[../]
[./ckernel]
type = SplitCHWRes
mob_name = M
variable = w
[../]
#
# Allen-Cahn Equation
#
[./ACBulkF]
type = KKSACBulkF
variable = eta
fa_name = f_total_matrix
fb_name = f_total_ppt
w = 0.0264
args = 'cp cm'
[../]
[./ACBulkC]
type = KKSACBulkC
variable = eta
ca = cm
cb = cp
fa_name = f_total_matrix
fb_name = f_total_ppt
[../]
[./ACInterface]
type = ACInterface
variable = eta
kappa_name = kappa
[../]
[./detadt]
type = TimeDerivative
variable = eta
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type'
petsc_options_value = 'asm ilu nonzero'
l_max_its = 30
nl_max_its = 10
l_tol = 1.0e-4
nl_rel_tol = 1.0e-8
nl_abs_tol = 1.0e-11
num_steps = 200
[./TimeStepper]
type = SolutionTimeAdaptiveDT
dt = 0.5
[../]
[]
[VectorPostprocessors]
#[./eta]
# type = LineValueSampler
# start_point = '-10 0 0'
# end_point = '10 0 0'
# variable = eta
# num_points = 321
# sort_by = id
#[../]
#[./eta_position]
# type = FindValueOnLineSample
# vectorpostprocessor = eta
# variable_name = eta
# search_value = 0.5
#[../]
# [./f_el]
# type = LineMaterialRealSampler
# start = '-20 0 0'
# end = '20 0 0'
# sort_by = id
# property = f_el
# [../]
# [./f_el_a]
# type = LineMaterialRealSampler
# start = '-20 0 0'
# end = '20 0 0'
# sort_by = id
# property = fe_m
# [../]
# [./f_el_b]
# type = LineMaterialRealSampler
# start = '-20 0 0'
# end = '20 0 0'
# sort_by = id
# property = fe_p
# [../]
# [./h_out]
# type = LineMaterialRealSampler
# start = '-20 0 0'
# end = '20 0 0'
# sort_by = id
# property = h
# [../]
# [./fm_out]
# type = LineMaterialRealSampler
# start = '-20 0 0'
# end = '20 0 0'
# sort_by = id
# property = fm
# [../]
[]
[Postprocessors]
[./f_el_int]
type = ElementIntegralMaterialProperty
mat_prop = f_el_mat
[../]
[./c_alpha]
type = SideAverageValue
boundary = left
variable = c
[../]
[./c_beta]
type = SideAverageValue
boundary = right
variable = c
[../]
[./e11_alpha]
type = SideAverageValue
boundary = left
variable = e11
[../]
[./e11_beta]
type = SideAverageValue
boundary = right
variable = e11
[../]
[./s11_alpha]
type = SideAverageValue
boundary = left
variable = sigma11
[../]
[./s22_alpha]
type = SideAverageValue
boundary = left
variable = sigma22
[../]
[./s33_alpha]
type = SideAverageValue
boundary = left
variable = sigma33
[../]
[./s11_beta]
type = SideAverageValue
boundary = right
variable = sigma11
[../]
[./s22_beta]
type = SideAverageValue
boundary = right
variable = sigma22
[../]
[./s33_beta]
type = SideAverageValue
boundary = right
variable = sigma33
[../]
[./f_el_alpha]
type = SideAverageValue
boundary = left
variable = f_el
[../]
[./f_el_beta]
type = SideAverageValue
boundary = right
variable = f_el
[../]
[./f_c_alpha]
type = SideAverageValue
boundary = left
variable = Fglobal
[../]
[./f_c_beta]
type = SideAverageValue
boundary = right
variable = Fglobal
[../]
[./chem_pot_alpha]
type = SideAverageValue
boundary = left
variable = w
[../]
[./chem_pot_beta]
type = SideAverageValue
boundary = right
variable = w
[../]
[./psi_alpha]
type = SideAverageValue
boundary = left
variable = psi
[../]
[./psi_beta]
type = SideAverageValue
boundary = right
variable = psi
[../]
[./total_energy]
type = ElementIntegralVariablePostprocessor
variable = Fglobal
[../]
# Get simulation cell size from postprocessor
[./volume]
type = ElementIntegralMaterialProperty
mat_prop = 1
[../]
[./psi_eq_int]
type = FunctionValuePostprocessor
function = psi_eq_int
[../]
[./psi_int]
type = ElementIntegralVariablePostprocessor
variable = psi
[../]
[./gamma]
type = FunctionValuePostprocessor
function = gamma
[../]
[]
#
# Precondition using handcoded off-diagonal terms
#
[Preconditioning]
[./full]
type = SMP
full = true
[../]
[]
[Outputs]
[./exodus]
type = Exodus
interval = 20
[../]
[./csv]
type = CSV
execute_on = 'final'
[../]
#[./console]
# type = Console
# output_file = true
# [../]
[]
test/tests/executioners/nullspace/singular.i
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 10
nx = 8
[]
[Problem]
null_space_dimension = 1
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./eig]
type = MassEigenKernel
variable = u
eigen_postprocessor = 1.0002920196258376e+01
eigen = false
[../]
[./force]
type = CoupledForce
variable = u
v = aux_v
[../]
[]
[AuxVariables]
[./aux_v]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = eigen_mode
[../]
[../]
[]
[AuxKernels]
[./set_source]
type = FunctionAux
variable = aux_v
function = second_harmonic
execute_on = timestep_begin
[../]
[]
[Functions]
[./eigen_mode]
type = ParsedFunction
value = 'sqrt(2.0 / L) * sin(mode * pi * x / L)'
vars = 'L mode'
vals = '10 1'
[../]
[./second_harmonic]
type = ParsedFunction
value = 'sqrt(2.0 / L) * sin(mode * pi * x / L)'
vars = 'L mode'
vals = '10 2'
[../]
[]
[BCs]
[./homogeneous]
type = DirichletBC
variable = u
boundary = '0 1'
value = 0
[../]
[]
[VectorPostprocessors]
[./sample_solution]
type = LineValueSampler
variable = u
start_point = '0 0 0'
end_point = '10 0 0'
sort_by = x
num_points = 9
execute_on = timestep_end
[../]
[]
[Preconditioning]
[./prec]
type = SMP
full = true
[../]
[]
[Executioner]
type = SteadyWithNull
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_pc_side -snes_type -ksp_norm_type'
petsc_options_value = 'hypre boomeramg left ksponly preconditioned'
nl_rel_tol = 1.0e-14
nl_abs_tol = 1.0e-14
[]
[Outputs]
execute_on = 'timestep_end'
csv = true
[]
test/tests/outputs/postprocessor_final/postprocessor_final.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = u
start_point = '0 0 0'
end_point = '1 1 0'
outputs = test
num_points = 10
sort_by = id
[../]
[]
[Executioner]
type = Transient
num_steps = 20
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
[./test]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/examples/flow_through_fractured_media/coarse.i
# Flow and solute transport along a fracture embedded in a porous matrix
# The fracture is represented by lower dimensional elements
# fracture aperture = 6e-4m
# fracture porosity = 6e-4m = phi * a
# fracture permeability = 1.8e-11 which is based on k=3e-8 from a**2/12, and k*a = 3e-8*6e-4
# matrix porosity = 0.1
# matrix permeanility = 1e-20
[Mesh]
type = FileMesh
file = 'coarse.e'
block_id = '1 2 3'
block_name = 'fracture matrix1 matrix2'
boundary_id = '1 2'
boundary_name = 'bottom top'
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./pp]
[../]
[./massfrac0]
[../]
[]
[AuxVariables]
[./velocity_x]
family = MONOMIAL
order = CONSTANT
block = 'fracture'
[../]
[./velocity_y]
family = MONOMIAL
order = CONSTANT
block = 'fracture'
[../]
[]
[AuxKernels]
[./velocity_x]
type = PorousFlowDarcyVelocityComponentLowerDimensional
variable = velocity_x
component = x
aperture = 6E-4
[../]
[./velocity_y]
type = PorousFlowDarcyVelocityComponentLowerDimensional
variable = velocity_y
component = y
aperture = 6E-4
[../]
[]
[ICs]
[./massfrac0]
type = ConstantIC
variable = massfrac0
value = 0
[../]
[./pp_matrix]
type = ConstantIC
variable = pp
value = 1E6
[../]
[]
[BCs]
[./top]
type = PresetBC
value = 0
variable = massfrac0
boundary = top
[../]
[./bottom]
type = PresetBC
value = 1
variable = massfrac0
boundary = bottom
[../]
[./ptop]
type = PresetBC
variable = pp
boundary = top
value = 1e6
[../]
[./pbottom]
type = PresetBC
variable = pp
boundary = bottom
value = 1.002e6
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = pp
[../]
[./adv0]
type = PorousFlowAdvectiveFlux
fluid_component = 1
variable = pp
[../]
[./diff0]
type = PorousFlowDispersiveFlux
fluid_component = 1
variable = pp
disp_trans = 0
disp_long = 0
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = massfrac0
[../]
[./adv1]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = massfrac0
[../]
[./diff1]
type = PorousFlowDispersiveFlux
fluid_component = 0
variable = massfrac0
disp_trans = 0
disp_long = 0
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'pp massfrac0'
number_fluid_phases = 1
number_fluid_components = 2
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 1000
thermal_expansion = 0
viscosity = 1e-3
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow1PhaseFullySaturated
porepressure = pp
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = massfrac0
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./poro_fracture]
type = PorousFlowPorosityConst
porosity = 6e-4 # = a * phif
block = 'fracture'
[../]
[./poro_matrix]
type = PorousFlowPorosityConst
porosity = 0.1
block = 'matrix1 matrix2'
[../]
[./diff1]
type = PorousFlowDiffusivityConst
diffusion_coeff = '1e-9 1e-9'
tortuosity = 1.0
block = 'fracture'
[../]
[./diff2]
type = PorousFlowDiffusivityConst
diffusion_coeff = '1e-9 1e-9'
tortuosity = 0.1
block = 'matrix1 matrix2'
[../]
[./permeability_fracture]
type = PorousFlowPermeabilityConst
permeability = '1.8e-11 0 0 0 1.8e-11 0 0 0 1.8e-11' # 1.8e-11 = a * kf
block = 'fracture'
[../]
[./permeability_matrix]
type = PorousFlowPermeabilityConst
permeability = '1e-20 0 0 0 1e-20 0 0 0 1e-20'
block = 'matrix1 matrix2'
[../]
[./relp]
type = PorousFlowRelativePermeabilityConst
phase = 0
[../]
[]
[Preconditioning]
[./basic]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = 'gmres asm lu NONZERO 2 '
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
end_time = 10
dt = 1
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-9
[]
[VectorPostprocessors]
[./xmass]
type = LineValueSampler
start_point = '-0.5 0 0'
end_point = '0.5 0 0'
sort_by = x
num_points = 41
variable = massfrac0
outputs = csv
[../]
[]
[Outputs]
[./csv]
type = CSV
execute_on = 'final'
[../]
[]
test/tests/executioners/nullspace/singular_contaminated.i
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 10
nx = 8
[]
[Problem]
null_space_dimension = 1
transpose_null_space_dimension = 1
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./eig]
type = MassEigenKernel
variable = u
eigen_postprocessor = 1.0002920196258376e+01
eigen = false
[../]
[./force]
type = CoupledForce
variable = u
v = aux_v
[../]
[]
[AuxVariables]
[./aux_v]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = eigen_mode
[../]
[../]
[]
[AuxKernels]
[./set_source]
type = FunctionAux
variable = aux_v
function = contaminated_second_harmonic
execute_on = timestep_begin
[../]
[]
[Functions]
[./eigen_mode]
type = ParsedFunction
value = 'sqrt(2.0 / L) * sin(mode * pi * x / L)'
vars = 'L mode'
vals = '10 1'
[../]
[./contaminated_second_harmonic]
type = ParsedFunction
value = 'sqrt(2.0 / L) * sin(mode * pi * x / L) + a * sqrt(2.0 / L) * sin(pi * x / L)'
vars = 'L mode a'
vals = '10 2 1'
[../]
[]
[BCs]
[./homogeneous]
type = DirichletBC
variable = u
boundary = '0 1'
value = 0
[../]
[]
[VectorPostprocessors]
[./sample_solution]
type = LineValueSampler
variable = u
start_point = '0 0 0'
end_point = '10 0 0'
sort_by = x
num_points = 9
execute_on = timestep_end
[../]
[]
[Preconditioning]
[./prec]
type = SMP
full = true
[../]
[]
[Executioner]
type = SteadyWithNull
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_pc_side -snes_type -ksp_norm_type'
petsc_options_value = 'hypre boomeramg left ksponly preconditioned'
nl_rel_tol = 1.0e-14
nl_abs_tol = 1.0e-14
[]
[Outputs]
execute_on = 'timestep_end'
csv = true
[]
modules/porous_flow/examples/flow_through_fractured_media/coarse_3D.i
# Flow and solute transport along 2 2D eliptical fractures embedded in a 3D porous matrix
# the model domain has dimensions 1 x 1 x 0.3m and the two fracture have r1 = 0.45 and r2 = 0.2
# The fractures intersect each other and the domain boundaries on two opposite sides
# fracture aperture = 6e-4m
# fracture porosity = 6e-4m
# fracture permeability = 1.8e-11 which is based in k=3e-8 from a**2/12, and k*a = 3e-8*6e-4;
# matrix porosity = 0.1;
# matrix permeanility = 1e-20;
[Mesh]
type = FileMesh
file = coarse_3D.e
block_id = '1 2 3'
block_name = 'matrix f1 f2'
boundary_id = '1 2 3 4'
boundary_name = 'rf2 lf1 right_matrix left_matrix'
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./pp]
[../]
[./tracer]
[../]
[]
[AuxVariables]
[./velocity_x]
family = MONOMIAL
order = CONSTANT
block = 'f1 f2'
[../]
[./velocity_y]
family = MONOMIAL
order = CONSTANT
block = 'f1 f2'
[../]
[./velocity_z]
family = MONOMIAL
order = CONSTANT
block = 'f1 f2'
[../]
[]
[AuxKernels]
[./velocity_x]
type = PorousFlowDarcyVelocityComponentLowerDimensional
variable = velocity_x
component = x
aperture = 6E-4
[../]
[./velocity_y]
type = PorousFlowDarcyVelocityComponentLowerDimensional
variable = velocity_y
component = y
aperture = 6E-4
[../]
[./velocity_z]
type = PorousFlowDarcyVelocityComponentLowerDimensional
variable = velocity_z
component = z
aperture = 6E-4
[../]
[]
[ICs]
[./pp]
type = ConstantIC
variable = pp
value = 1e6
[../]
[./tracer]
type = ConstantIC
variable = tracer
value = 0
[../]
[]
[BCs]
[./top]
type = PresetBC
value = 0
variable = tracer
boundary = rf2
[../]
[./bottom]
type = PresetBC
value = 1
variable = tracer
boundary = lf1
[../]
[./ptop]
type = PresetBC
variable = pp
boundary = rf2
value = 1e6
[../]
[./pbottom]
type = PresetBC
variable = pp
boundary = lf1
value = 1.02e6
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pp
[../]
[./adv0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pp
[../]
[./diff0]
type = PorousFlowDispersiveFlux
fluid_component = 0
variable = pp
disp_trans = 0
disp_long = 0
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = tracer
[../]
[./adv1]
type = PorousFlowAdvectiveFlux
fluid_component = 1
variable = tracer
[../]
[./diff1]
type = PorousFlowDispersiveFlux
fluid_component = 1
variable = tracer
disp_trans = 0
disp_long = 0
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'pp tracer'
number_fluid_phases = 1
number_fluid_components = 2
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 1000
thermal_expansion = 0
viscosity = 1e-3
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow1PhaseFullySaturated
porepressure = pp
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = 'tracer'
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./poro1]
type = PorousFlowPorosityConst
porosity = 6e-4 # = a * phif
block = 'f1 f2'
[../]
[./diff1]
type = PorousFlowDiffusivityConst
diffusion_coeff = '1.e-9 1.e-9'
tortuosity = 1.0
block = 'f1 f2'
[../]
[./poro2]
type = PorousFlowPorosityConst
porosity = 0.1
block = 'matrix'
[../]
[./diff2]
type = PorousFlowDiffusivityConst
diffusion_coeff = '1.e-9 1.e-9'
tortuosity = 0.1
block = 'matrix'
[../]
[./relp]
type = PorousFlowRelativePermeabilityConst
phase = 0
[../]
[./permeability1]
type = PorousFlowPermeabilityConst
permeability = '1.8e-11 0 0 0 1.8e-11 0 0 0 1.8e-11' # 1.8e-11 = a * kf
block = 'f1 f2'
[../]
[./permeability2]
type = PorousFlowPermeabilityConst
permeability = '1e-20 0 0 0 1e-20 0 0 0 1e-20'
block = 'matrix'
[../]
[]
[Preconditioning]
active = basic
[./mumps_is_best_for_parallel_jobs]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[./basic]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = 'gmres asm lu NONZERO 2 '
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
end_time = 20
dt = 1
[]
[VectorPostprocessors]
[./xmass]
type = LineValueSampler
start_point = '-0.5 0 0'
end_point = '0.5 0 0'
sort_by = x
num_points = 41
variable = tracer
outputs = csv
[../]
[]
[Outputs]
[./csv]
type = CSV
execute_on = 'final'
[../]
[]
modules/tensor_mechanics/test/tests/static_deformations/beam_cosserat_01.i
# Beam bending. One end is clamped and the other end is subjected to
# a surface traction.
# The joint normal and shear stiffnesses are set very large, so
# that this situation should be identical to the standard (non-Cosserat)
# isotropic elasticity case.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 40
xmax = 10
ny = 1
nz = 4
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[]
[BCs]
# zmin is called back
# zmax is called front
# ymin is called bottom
# ymax is called top
# xmin is called left
# xmax is called right
[./no_dispy]
type = PresetBC
variable = disp_y
boundary = 'bottom top'
value = 0.0
[../]
[./no_wc_x]
type = PresetBC
variable = wc_x
boundary = 'bottom top back front left right'
value = 0.0
[../]
[./clamp_z]
type = PresetBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./clamp_x]
type = PresetBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./end_traction]
type = VectorNeumannBC
variable = disp_z
vector_value = '-2E-4 0 0'
boundary = right
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./couple_stress_xx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xx
index_i = 0
index_j = 0
[../]
[./couple_stress_xy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xy
index_i = 0
index_j = 1
[../]
[./couple_stress_xz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xz
index_i = 0
index_j = 2
[../]
[./couple_stress_yx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yx
index_i = 1
index_j = 0
[../]
[./couple_stress_yy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yy
index_i = 1
index_j = 1
[../]
[./couple_stress_yz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yz
index_i = 1
index_j = 2
[../]
[./couple_stress_zx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zx
index_i = 2
index_j = 0
[../]
[./couple_stress_zy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zy
index_i = 2
index_j = 1
[../]
[./couple_stress_zz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zz
index_i = 2
index_j = 2
[../]
[]
[VectorPostprocessors]
[./soln]
type = LineValueSampler
sort_by = x
variable = 'disp_x disp_z stress_xx stress_xz stress_zx stress_zz wc_x wc_y couple_stress_xx couple_stress_xz couple_stress_zx couple_stress_zz'
start_point = '0 0 0.5'
end_point = '10 0 0.5'
num_points = 11
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 1.2
poisson = 0.3
layer_thickness = 1
joint_normal_stiffness = 1E16
joint_shear_stiffness = 1E16
[../]
[./strain]
type = ComputeCosseratSmallStrain
[../]
[./stress]
type = ComputeCosseratLinearElasticStress
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol -sub_pc_factor_shift_type'
petsc_options_value = 'gmres asm lu 1E-10 1E-14 10 1E-15 1E-10 NONZERO'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
num_steps = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = beam_cosserat_01
csv = true
exodus = true
[]
modules/porous_flow/test/tests/capillary_pressure/brooks_corey2.i
# Test Brooks-Corey capillary pressure curve by varying saturation over the mesh
# lambda = 2, sat_lr = 0.1, log_extension = true
[Mesh]
type = GeneratedMesh
dim = 1
nx = 500
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./p0]
initial_condition = 1e6
[../]
[./s1]
[../]
[]
[AuxVariables]
[./s0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./s1aux]
family = MONOMIAL
order = CONSTANT
[../]
[./p0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./p1aux]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./s0]
type = PorousFlowPropertyAux
property = saturation
phase = 0
variable = s0aux
[../]
[./s1]
type = PorousFlowPropertyAux
property = saturation
phase = 1
variable = s1aux
[../]
[./p0]
type = PorousFlowPropertyAux
property = pressure
phase = 0
variable = p0aux
[../]
[./p1]
type = PorousFlowPropertyAux
property = pressure
phase = 1
variable = p1aux
[../]
[]
[Functions]
[./s1]
type = ParsedFunction
value = x
[../]
[]
[ICs]
[./s1]
type = FunctionIC
variable = s1
function = s1
[../]
[]
[Kernels]
[./p0]
type = Diffusion
variable = p0
[../]
[./s1]
type = Diffusion
variable = s1
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'p0 s1'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureBC
lambda = 2
log_extension = true
pe = 1e5
sat_lr = 0.1
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = p0
phase1_saturation = s1
capillary_pressure = pc
[../]
[./kr0]
type = PorousFlowRelativePermeabilityVG
phase = 0
m = 0.5
[../]
[./kr1]
type = PorousFlowRelativePermeabilityCorey
phase = 1
n = 2
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = 's0aux s1aux p0aux p1aux'
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 500
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-6
[]
[BCs]
[./sleft]
type = DirichletBC
variable = s1
value = 0
boundary = left
[../]
[./sright]
type = DirichletBC
variable = s1
value = 1
boundary = right
[../]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
modules/porous_flow/test/tests/broadbridge_white/rd01.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 120
ny = 1
xmin = 0
xmax = 6
ymin = 0
ymax = 0.05
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Functions]
[./dts]
type = PiecewiseLinear
y = '1E-2 1 10 500 5000 5000'
x = '0 10 100 1000 10000 100000'
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = pressure
number_fluid_phases = 1
number_fluid_components = 1
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
m = 0.336
alpha = 1.43e-4
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e7
viscosity = 1.01e-3
density0 = 1000
thermal_expansion = 0
[../]
[../]
[]
[Materials]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./temperature]
type = PorousFlowTemperature
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = pressure
capillary_pressure = pc
[../]
[./relperm]
type = PorousFlowRelativePermeabilityVG
m = 0.336
seff_turnover = 0.99
phase = 0
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.33
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '0.295E-12 0 0 0 0.295E-12 0 0 0 0.295E-12'
[../]
[]
[Variables]
[./pressure]
initial_condition = -72620.4
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pressure
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pressure
gravity = '-10 0 0'
[../]
[]
[AuxVariables]
[./SWater]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./SWater]
type = MaterialStdVectorAux
property = PorousFlow_saturation_qp
index = 0
variable = SWater
[../]
[]
[BCs]
[./base]
type = PorousFlowSink
boundary = right
flux_function = -2.315E-3
variable = pressure
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason -ksp_diagonal_scale -ksp_diagonal_scale_fix -ksp_gmres_modifiedgramschmidt -snes_linesearch_monitor'
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu NONZERO 2 1E-10 1E-10 10'
[../]
[]
[VectorPostprocessors]
[./swater]
type = LineValueSampler
variable = SWater
start_point = '0 0 0'
end_point = '6 0 0'
sort_by = x
num_points = 121
execute_on = timestep_end
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_converged_reason'
end_time = 359424
[./TimeStepper]
type = FunctionDT
function = dts
[../]
[]
[Outputs]
file_base = rd01
[./exodus]
type = Exodus
execute_on = final
[../]
[./along_line]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/numerical_diffusion/no_action.i
# Using upwinded and mass-lumped PorousFlow Kernels
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmin = 0
xmax = 1
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./porepressure]
[../]
[./tracer]
[../]
[]
[ICs]
[./porepressure]
type = FunctionIC
variable = porepressure
function = '1 - x'
[../]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = tracer
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = tracer
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = porepressure
[../]
[./flux1]
type = PorousFlowAdvectiveFlux
fluid_component = 1
variable = porepressure
[../]
[]
[BCs]
[./constant_injection_porepressure]
type = PresetBC
variable = porepressure
value = 1
boundary = left
[../]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_component_1]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 1
use_mobility = true
flux_function = 1E3
[../]
[./remove_component_0]
type = PorousFlowPiecewiseLinearSink
variable = tracer
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 0
use_mobility = true
flux_function = 1E3
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E9
thermal_expansion = 0
viscosity = 1.0
density0 = 1000.0
[../]
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure tracer'
number_fluid_phases = 1
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = tracer
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = the_simple_fluid
phase = 0
[../]
[./relperm]
type = PorousFlowRelativePermeabilityConst
phase = 0
[../]
[./porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-2 0 0 0 1E-2 0 0 0 1E-2'
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 101
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-1
nl_abs_tol = 1E-8
timestep_tolerance = 1E-3
[]
[Outputs]
[./out]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/flux_limited_TVD_advection/fltvd_1D.i
# Using Flux-Limited TVD Advection ala Kuzmin and Turek, with antidiffusion from superbee flux limiting
# 1D version
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0
xmax = 1
[]
[Variables]
[./tracer]
[../]
[]
[ICs]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[Kernels]
[./mass_dot]
type = MassLumpedTimeDerivative
variable = tracer
[../]
[./flux]
type = FluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = fluo
[../]
[]
[UserObjects]
[./fluo]
type = AdvectiveFluxCalculatorConstantVelocity
flux_limiter_type = superbee
u = tracer
velocity = '0.1 0 0'
[../]
[]
[BCs]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_tracer]
# Ideally, an OutflowBC would be used, but that does not exist in the framework
# In 1D VacuumBC is the same as OutflowBC, with the alpha parameter being twice the velocity
type = VacuumBC
boundary = right
alpha = 0.2 # 2 * velocity
variable = tracer
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 11
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
nl_abs_tol = 1E-8
nl_max_its = 500
timestep_tolerance = 1E-3
[]
[Outputs]
print_linear_residuals = false
[./out]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/flux_limited_TVD_advection/fltvd_3D.i
# Using Flux-Limited TVD Advection ala Kuzmin and Turek, with antidiffusion from superbee flux limiting
# 3D version
[Mesh]
type = GeneratedMesh
dim = 3
nx = 10
xmin = 0
xmax = 1
ny = 4
ymin = 0
ymax = 0.5
nz = 3
zmin = 0
zmax = 2
[]
[Variables]
[./tracer]
[../]
[]
[ICs]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[Kernels]
[./mass_dot]
type = MassLumpedTimeDerivative
variable = tracer
[../]
[./flux]
type = FluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = fluo
[../]
[]
[UserObjects]
[./fluo]
type = AdvectiveFluxCalculatorConstantVelocity
flux_limiter_type = superbee
u = tracer
velocity = '0.1 0 0'
[../]
[]
[BCs]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_tracer]
# Ideally, an OutflowBC would be used, but that does not exist in the framework
# In 1D VacuumBC is the same as OutflowBC, with the alpha parameter being twice the velocity
type = VacuumBC
boundary = right
alpha = 0.2 # 2 * velocity
variable = tracer
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0.5 2'
num_points = 11
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
nl_abs_tol = 1E-8
nl_max_its = 500
timestep_tolerance = 1E-3
[]
[Outputs]
csv = true
print_linear_residuals = false
execute_on = final
[]
test/tests/vectorpostprocessors/time_data/time_data.i
###############################################################
# The following tests that the CSV output object can include an
# additional .csv file that contains the time and timestep
# data from VectorPostprocessor object.
###############################################################
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[./v]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[./left_v]
type = DirichletBC
variable = v
boundary = left
value = 1
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = right
value = 0
[../]
[]
[VectorPostprocessors]
[./line_sample]
type = LineValueSampler
variable = 'u v'
start_point = '0 0.5 0'
end_point = '1 0.5 0'
num_points = 11
sort_by = id
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
num_steps = 20
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
execute_on = 'initial timestep_end'
[./out]
type = CSV
time_data = true
interval = 2
[../]
[]
modules/phase_field/test/tests/misc/equal_gradient_lagrange.i
#
# This test demonstrates an InterfaceKernel set that can enforce the componentwise
# continuity of the gradient of a variable using the Lagrange multiplier method.
#
[Mesh]
type = GeneratedMesh
dim = 2
nx = 20
ny = 10
ymax = 0.5
[]
[MeshModifiers]
[./box1]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '0 0 0'
top_right = '0.51 1 0'
[../]
[./box2]
type = SubdomainBoundingBox
block_id = 2
bottom_left = '0.49 0 0'
top_right = '1 1 0'
[../]
[./iface_u]
type = SideSetsBetweenSubdomains
master_block = 1
paired_block = 2
new_boundary = 10
depends_on = 'box1 box2'
[../]
[]
[Variables]
[./u2]
block = 1
[./InitialCondition]
type = FunctionIC
function = 'r:=sqrt((x-0.4)^2+(y-0.5)^2);if(r<0.05,5,1)'
[../]
[../]
[./v2]
block = 2
initial_condition = 0.8
[../]
[./lambda]
[../]
[]
[Kernels]
[./u2_diff]
type = Diffusion
variable = u2
block = 1
[../]
[./u2_dt]
type = TimeDerivative
variable = u2
block = 1
[../]
[./v2_diff]
type = Diffusion
variable = v2
block = 2
[../]
[./v2_dt]
type = TimeDerivative
variable = v2
block = 2
[../]
[./lambda]
type = NullKernel
variable = lambda
[../]
[]
[InterfaceKernels]
[./iface]
type = InterfaceDiffusionBoundaryTerm
boundary = 10
variable = u2
neighbor_var = v2
[../]
[./lambda]
type = EqualGradientLagrangeMultiplier
variable = lambda
boundary = 10
element_var = u2
neighbor_var = v2
component = 0
[../]
[./constraint]
type = EqualGradientLagrangeInterface
boundary = 10
lambda = lambda
variable = u2
neighbor_var = v2
component = 0
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[VectorPostprocessors]
[./uv]
type = LineValueSampler
variable = 'u2 v2'
start_point = '0 0.5 0'
end_point = '1 0.5 0'
sort_by = x
num_points = 100
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_factor_shift_type'
petsc_options_value = 'nonzero'
dt = 0.002
num_steps = 10
[]
[Outputs]
exodus = true
csv = true
hide = lambda
print_linear_residuals = false
[]
modules/porous_flow/test/tests/relperm/corey1.i
# Test Corey relative permeability curve by varying saturation over the mesh
# Corey exponent n = 1 for both phases (linear residual saturation)
# No residual saturation in either phase
[Mesh]
type = GeneratedMesh
dim = 1
nx = 20
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./p0]
initial_condition = 1e6
[../]
[./s1]
[../]
[]
[AuxVariables]
[./s0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./s1aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr1aux]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./s0]
type = PorousFlowPropertyAux
property = saturation
phase = 0
variable = s0aux
[../]
[./s1]
type = PorousFlowPropertyAux
property = saturation
phase = 1
variable = s1aux
[../]
[./kr0]
type = PorousFlowPropertyAux
property = relperm
phase = 0
variable = kr0aux
[../]
[./kr1]
type = PorousFlowPropertyAux
property = relperm
phase = 1
variable = kr1aux
[../]
[]
[Functions]
[./s1]
type = ParsedFunction
value = x
[../]
[]
[ICs]
[./s1]
type = FunctionIC
variable = s1
function = s1
[../]
[]
[Kernels]
[./p0]
type = Diffusion
variable = p0
[../]
[./s1]
type = Diffusion
variable = s1
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'p0 s1'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
pc = 0
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = p0
phase1_saturation = s1
capillary_pressure = pc
[../]
[./kr0]
type = PorousFlowRelativePermeabilityCorey
phase = 0
n = 1
[../]
[./kr1]
type = PorousFlowRelativePermeabilityCorey
phase = 1
n = 1
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = 's0aux s1aux kr0aux kr1aux'
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 20
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-8
[]
[BCs]
[./sleft]
type = DirichletBC
variable = s1
value = 0
boundary = left
[../]
[./sright]
type = DirichletBC
variable = s1
value = 1
boundary = right
[../]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
modules/porous_flow/test/tests/relperm/corey2.i
# Test Corey relative permeability curve by varying saturation over the mesh
# Corey exponent n = 2 for both phases
# No residual saturation in either phase
[Mesh]
type = GeneratedMesh
dim = 1
nx = 20
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./p0]
initial_condition = 1e6
[../]
[./s1]
family = LAGRANGE
order = FIRST
[../]
[]
[AuxVariables]
[./s0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./s1aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr1aux]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./s0]
type = PorousFlowPropertyAux
property = saturation
phase = 0
variable = s0aux
[../]
[./s1]
type = PorousFlowPropertyAux
property = saturation
phase = 1
variable = s1aux
[../]
[./kr0]
type = PorousFlowPropertyAux
property = relperm
phase = 0
variable = kr0aux
[../]
[./kr1]
type = PorousFlowPropertyAux
property = relperm
phase = 1
variable = kr1aux
[../]
[]
[Functions]
[./s1]
type = ParsedFunction
value = x
[../]
[]
[ICs]
[./s1]
type = FunctionIC
variable = s1
function = s1
[../]
[]
[Kernels]
[./p0]
type = Diffusion
variable = p0
[../]
[./s1]
type = Diffusion
variable = s1
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'p0 s1'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
pc = 0
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = p0
phase1_saturation = s1
capillary_pressure = pc
[../]
[./kr0]
type = PorousFlowRelativePermeabilityCorey
phase = 0
n = 2
[../]
[./kr1]
type = PorousFlowRelativePermeabilityCorey
phase = 1
n = 2
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = 's0aux s1aux kr0aux kr1aux'
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 20
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-8
[]
[BCs]
[./sleft]
type = DirichletBC
variable = s1
value = 0
boundary = left
[../]
[./sright]
type = DirichletBC
variable = s1
value = 1
boundary = right
[../]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
modules/porous_flow/test/tests/numerical_diffusion/fltvd_none.i
# Using Flux-Limited TVD Advection ala Kuzmin and Turek
# No antidiffusion, so this is identical to full-upwinding
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmin = 0
xmax = 1
[]
[Variables]
[./tracer]
[../]
[]
[ICs]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[Kernels]
[./mass_dot]
type = MassLumpedTimeDerivative
variable = tracer
[../]
[./flux]
type = FluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = fluo
[../]
[]
[UserObjects]
[./fluo]
type = AdvectiveFluxCalculator
flux_limiter_type = none
u = tracer
velocity = '0.1 0 0'
[../]
[]
[BCs]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_tracer]
# Ideally, an OutflowBC would be used, but that does not exist in the framework
# In 1D VacuumBC is the same as OutflowBC, with the alpha parameter being twice the velocity
type = VacuumBC
boundary = right
alpha = 0.2 # 2 * velocity
variable = tracer
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 101
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-1
nl_abs_tol = 1E-8
nl_max_its = 500
timestep_tolerance = 1E-3
[]
[Outputs]
csv = true
execute_on = final
[]
modules/porous_flow/test/tests/flux_limited_TVD_pflow/pffltvd_2D_trimesh.i
# Using flux-limited TVD advection ala Kuzmin and Turek, mploying PorousFlow Kernels and UserObjects, with superbee flux-limiter
# 2D version
[Mesh]
type = FileMesh
file = trimesh.msh
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
block = '50'
[]
[Variables]
[./porepressure]
[../]
[./tracer]
[../]
[]
[ICs]
[./porepressure]
type = FunctionIC
variable = porepressure
function = '1 - x'
[../]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.305,0,1))'
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = tracer
[../]
[./flux0]
type = PorousFlowFluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = advective_flux_calculator_0
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = porepressure
[../]
[./flux1]
type = PorousFlowFluxLimitedTVDAdvection
variable = porepressure
advective_flux_calculator = advective_flux_calculator_1
[../]
[]
[BCs]
[./constant_injection_porepressure]
type = PresetBC
variable = porepressure
value = 1
boundary = left
[../]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_component_1]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 1
use_mobility = true
flux_function = 1E3
[../]
[./remove_component_0]
type = PorousFlowPiecewiseLinearSink
variable = tracer
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 0
use_mobility = true
flux_function = 1E3
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E9
thermal_expansion = 0
viscosity = 1.0
density0 = 1000.0
[../]
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure tracer'
number_fluid_phases = 1
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
[../]
[./advective_flux_calculator_0]
type = PorousFlowAdvectiveFluxCalculatorUnsaturatedMultiComponent
flux_limiter_type = superbee
fluid_component = 0
[../]
[./advective_flux_calculator_1]
type = PorousFlowAdvectiveFluxCalculatorUnsaturatedMultiComponent
flux_limiter_type = superbee
fluid_component = 1
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = tracer
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = the_simple_fluid
phase = 0
[../]
[./relperm]
type = PorousFlowRelativePermeabilityConst
phase = 0
[../]
[./porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-2 0 0 0 1E-2 0 0 0 1E-2'
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0.04 0'
num_points = 101
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
nl_abs_tol = 1E-8
timestep_tolerance = 1E-3
[]
[Outputs]
exodus = true
csv = true
print_linear_residuals = false
execute_on = final
[]
test/tests/bcs/vectorpostprocessor/vectorpostprocessor.i
[Mesh]
type = GeneratedMesh
nx = 10
ny = 10
xmax = 1
ymax = 1
dim = 2
[]
[Variables]
[./u]
[../]
[./v]
[../]
[]
[Kernels]
[./conv]
type = ConservativeAdvection
variable = u
velocity = '0 1 0'
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./src]
type = BodyForce
variable = u
function = ffn
[../]
[./diffv]
type = Diffusion
variable = v
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = bottom
value = 2
[../]
[./right]
type = ChannelGradientBC
variable = u
boundary = right
channel_gradient_pps = channel_gradient
axis = y
h_name = h
[../]
[./top]
type = OutflowBC
variable = u
boundary = top
velocity = '0 1 0'
[../]
[./leftv]
type = DirichletBC
variable = v
boundary = left
value = 0
[../]
[./rightv]
type = DirichletBC
variable = v
boundary = right
value = 1
[../]
[]
[Materials]
[./mat]
type = GenericConstantMaterial
prop_names = 'h'
#Nu = 4
#k = 1
#half_channel_length = 0.5
#h=Nu*k/half_channel_length
prop_values = '8'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
[VectorPostprocessors]
[./lv1]
num_points = 30
start_point = '0 0 0'
end_point = '0 1 0'
sort_by = 'y'
variable = u
type = LineValueSampler
execute_on = 'timestep_begin nonlinear timestep_end linear'
[../]
[./lv2]
num_points = 30
start_point = '1 0 0'
end_point = '1 1 0'
sort_by = 'y'
variable = v
type = LineValueSampler
execute_on = 'timestep_begin nonlinear timestep_end linear'
[../]
[./channel_gradient]
lv1 = lv1
lv2 = lv2
var1 = u
var2 = v
axis = y
type = ChannelGradientVectorPostprocessor
execute_on = 'timestep_begin nonlinear timestep_end linear'
[../]
[]
[Functions]
[./ffn]
type = ParsedFunction
value = '1'
[../]
[]
modules/porous_flow/examples/flow_through_fractured_media/fine_transient.i
# Using a mixed-dimensional mesh
# Transient flow and solute transport along a fracture in a porous matrix
# advective dominated flow in the fracture and diffusion into the porous matrix
#
# Note that fine_steady.i must be run to initialise the porepressure properly
[Mesh]
file = 'gold/fine_steady_out.e'
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./pp]
initial_from_file_var = pp
initial_from_file_timestep = 1
[../]
[./massfrac0]
[../]
[]
[AuxVariables]
[./velocity_x]
family = MONOMIAL
order = CONSTANT
block = fracture
[../]
[./velocity_y]
family = MONOMIAL
order = CONSTANT
block = fracture
[../]
[]
[AuxKernels]
[./velocity_x]
type = PorousFlowDarcyVelocityComponentLowerDimensional
variable = velocity_x
component = x
aperture = 6E-4
[../]
[./velocity_y]
type = PorousFlowDarcyVelocityComponentLowerDimensional
variable = velocity_y
component = y
aperture = 6E-4
[../]
[]
[ICs]
[./massfrac0]
type = ConstantIC
variable = massfrac0
value = 0
[../]
[]
[BCs]
[./top]
type = PresetBC
value = 0
variable = massfrac0
boundary = top
[../]
[./bottom]
type = PresetBC
value = 1
variable = massfrac0
boundary = bottom
[../]
[./ptop]
type = PresetBC
variable = pp
boundary = top
value = 1e6
[../]
[./pbottom]
type = PresetBC
variable = pp
boundary = bottom
value = 1.002e6
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pp
[../]
[./adv0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pp
[../]
[./diff0]
type = PorousFlowDispersiveFlux
fluid_component = 0
variable = pp
disp_trans = 0
disp_long = 0
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = massfrac0
[../]
[./adv1]
type = PorousFlowAdvectiveFlux
fluid_component = 1
variable = massfrac0
[../]
[./diff1]
type = PorousFlowDispersiveFlux
fluid_component = 1
variable = massfrac0
disp_trans = 0
disp_long = 0
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'pp massfrac0'
number_fluid_phases = 1
number_fluid_components = 2
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 1000
thermal_expansion = 0
viscosity = 1e-3
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow1PhaseFullySaturated
porepressure = pp
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = massfrac0
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./poro_fracture]
type = PorousFlowPorosityConst
porosity = 6e-4 # = a * phif
block = 'fracture'
[../]
[./poro_matrix]
type = PorousFlowPorosityConst
porosity = 0.1
block = 'matrix1 matrix2'
[../]
[./diff1]
type = PorousFlowDiffusivityConst
diffusion_coeff = '1e-9 1e-9'
tortuosity = 1.0
block = 'fracture'
[../]
[./diff2]
type = PorousFlowDiffusivityConst
diffusion_coeff = '1e-9 1e-9'
tortuosity = 0.1
block = 'matrix1 matrix2'
[../]
[./relp]
type = PorousFlowRelativePermeabilityConst
phase = 0
[../]
[./permeability_fracture]
type = PorousFlowPermeabilityConst
permeability = '1.8e-11 0 0 0 1.8e-11 0 0 0 1.8e-11' # kf=3e-8, a=6e-4m. 1.8e-11 = kf * a
block = 'fracture'
[../]
[./permeability_matrix]
type = PorousFlowPermeabilityConst
permeability = '1e-20 0 0 0 1e-20 0 0 0 1e-20'
block = 'matrix1 matrix2'
[../]
[]
[Functions]
[./dt_controller]
type = PiecewiseConstant
x = '0 30 40 100 200 83200'
y = '0.01 0.1 1 10 100 32'
[../]
[]
[Preconditioning]
active = basic
[./mumps_is_best_for_parallel_jobs]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[./basic]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = 'gmres asm lu NONZERO 2 '
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
end_time = 86400
[./TimeStepper]
type = FunctionDT
function = dt_controller
[../]
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-9
[]
[VectorPostprocessors]
[./xmass]
type = LineValueSampler
start_point = '0.4 0 0'
end_point = '0.5 0 0'
sort_by = x
num_points = 167
variable = massfrac0
[../]
[]
[Outputs]
perf_graph = true
console = true
csv = true
exodus = true
[]
modules/porous_flow/test/tests/newton_cooling/nc06.i
# Newton cooling from a bar. 1-phase and heat, steady
[Mesh]
type = GeneratedMesh
dim = 2
nx = 100
ny = 1
xmin = 0
xmax = 100
ymin = 0
ymax = 1
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'pressure temp'
number_fluid_phases = 1
number_fluid_components = 1
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
m = 0.8
alpha = 1e-5
[../]
[]
[Variables]
[./pressure]
[../]
[./temp]
[../]
[]
[ICs]
# have to start these reasonably close to their steady-state values
[./pressure]
type = FunctionIC
variable = pressure
function = '(2-x/100)*1E6'
[../]
[./temperature]
type = FunctionIC
variable = temp
function = 100+0.1*x
[../]
[]
[Kernels]
[./flux]
type = PorousFlowAdvectiveFlux
fluid_component = 0
gravity = '0 0 0'
variable = pressure
[../]
[./heat_advection]
type = PorousFlowHeatAdvection
gravity = '0 0 0'
variable = temp
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 1e6
density0 = 1000
thermal_expansion = 0
viscosity = 1e-3
cv = 1e6
porepressure_coefficient = 0
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
temperature = temp
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = pressure
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-15 0 0 0 1E-15 0 0 0 1E-15'
[../]
[./relperm]
type = PorousFlowRelativePermeabilityCorey # irrelevant in this fully-saturated situation
n = 2
phase = 0
[../]
[]
[BCs]
[./leftp]
type = DirichletBC
variable = pressure
boundary = left
value = 2E6
[../]
[./leftt]
type = DirichletBC
variable = temp
boundary = left
value = 100
[../]
[./newtonp]
type = PorousFlowPiecewiseLinearSink
variable = pressure
boundary = right
pt_vals = '0 100000 200000 300000 400000 500000 600000 700000 800000 900000 1000000 1100000 1200000 1300000 1400000 1500000 1600000 1700000 1800000 1900000 2000000'
multipliers = '0. 5.6677197748570516e-6 0.000011931518841831313 0.00001885408740732065 0.000026504708864284114 0.000034959953203725676 0.000044304443352900224 0.00005463170211001232 0.00006604508815181467 0.00007865883048198513 0.00009259917167338928 0.00010800563134618119 0.00012503240252705603 0.00014384989486488752 0.00016464644014777016 0.00018763017719085535 0.0002130311349595711 0.00024110353477682344 0.00027212833465544285 0.00030641604122040985 0.00034430981736352295'
use_mobility = false
use_relperm = false
fluid_phase = 0
flux_function = 1
[../]
[./newton]
type = PorousFlowPiecewiseLinearSink
variable = temp
boundary = right
pt_vals = '0 100000 200000 300000 400000 500000 600000 700000 800000 900000 1000000 1100000 1200000 1300000 1400000 1500000 1600000 1700000 1800000 1900000 2000000'
multipliers = '0. 5.6677197748570516e-6 0.000011931518841831313 0.00001885408740732065 0.000026504708864284114 0.000034959953203725676 0.000044304443352900224 0.00005463170211001232 0.00006604508815181467 0.00007865883048198513 0.00009259917167338928 0.00010800563134618119 0.00012503240252705603 0.00014384989486488752 0.00016464644014777016 0.00018763017719085535 0.0002130311349595711 0.00024110353477682344 0.00027212833465544285 0.00030641604122040985 0.00034430981736352295'
use_mobility = false
use_relperm = false
use_internal_energy = true
fluid_phase = 0
flux_function = 1
[../]
[]
[VectorPostprocessors]
[./porepressure]
type = LineValueSampler
variable = pressure
start_point = '0 0.5 0'
end_point = '100 0.5 0'
sort_by = x
num_points = 11
execute_on = timestep_end
[../]
[./temperature]
type = LineValueSampler
variable = temp
start_point = '0 0.5 0'
end_point = '100 0.5 0'
sort_by = x
num_points = 11
execute_on = timestep_end
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_max_it -sub_pc_factor_shift_type -pc_asm_overlap -snes_atol -snes_rtol '
petsc_options_value = 'gmres asm lu 100 NONZERO 2 1E-8 1E-15'
[../]
[]
[Executioner]
type = Steady
solve_type = Newton
[]
[Outputs]
file_base = nc06
execute_on = timestep_end
exodus = true
[./along_line]
type = CSV
execute_vector_postprocessors_on = timestep_end
[../]
[]
modules/combined/test/tests/beam_eigenstrain_transfer/subapp_err_3.i
# SubApp with 2D model to test multi app vectorpostprocessor to aux var transfer
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 5
xmin = 0.0
xmax = 0.5
ymin = 0.0
ymax = 0.150080
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./temp]
[../]
[./axial_strain]
order = FIRST
family = MONOMIAL
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t*(500.0)+300.0
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./all]
strain = SMALL
incremental = true
add_variables = true
eigenstrain_names = eigenstrain
[../]
[../]
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
[../]
[./axial_strain]
type = RankTwoAux
variable = axial_strain
rank_two_tensor = total_strain
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-9
start_time = 0.0
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
csv = true
exodus = true
[]
[VectorPostprocessors]
[./axial_str]
type = LineValueSampler
start_point = '0.5 0.0 0.0'
end_point = '0.5 0.150080 0.0'
variable = axial_strain
num_points = 21
sort_by = 'y'
[../]
[]
[Postprocessors]
[./end_disp]
type = PointValue
variable = disp_y
point = '0.5 0.150080 0.0'
[../]
[]
modules/tensor_mechanics/test/tests/static_deformations/beam_cosserat_02_apply_stress.i
# Beam bending.
# One end is clamped and the other end is subjected to a stress
# and micromechanical moment that will induce bending.
# The stress that will induce bending around the y axis is
# stress_xx = EAz
# This implies a micromechanical moment-stress of
# m_yx = (1/12)EAh^2 for joint_shear_stiffness=0.
# For joint_shear_stiffness!=0, the micromechanical moment-stress
# is
# m_yx = (1/12)EAa^2 G/(ak_s + G)
# All other stresses and moment stresses are assumed to be zero.
# With joint_shear_stiffness=0, and introducing D=-poisson*A, the
# nonzero strains are
# ep_xx = Az
# ep_yy = Dz
# ep_zz = Dz
# kappa_xy = -D
# kappa_yx = A
# This means the displacements are:
# u_x = Axz
# u_y = Dzy
# u_z = -(A/2)x^2 + (D/2)(z^2-y^2)
# wc_x = -Dy
# wc_y = Ax
# wc_z = 0
# This is bending of a bar around the y axis, in plane stress
# (stress_yy=0). Displacements at the left-hand (x=0) are applied
# according to the above formulae; wc_x and wc_y are applied throughout
# the bar; and stress_xx is applied at the right-hand end (x=10).
# The displacements are measured and
# compared with the above formulae.
# The test uses: E=1.2, poisson=0.3, A=1.11E-2, h=2, ks=0.1, so
# stress_xx = 1.332E-2*z
# m_yx = 0.2379E-2
[Mesh]
type = GeneratedMesh
dim = 3
nx = 10
ny = 1
nz = 10
xmin = 0
xmax = 10
ymin = -1
ymax = 1
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
#use_displaced_mesh = false
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[]
[BCs]
# zmin is called back
# zmax is called front
# ymin is called bottom
# ymax is called top
# xmin is called left
# xmax is called right
[./clamp_z]
type = FunctionPresetBC
variable = disp_z
boundary = left
function = '-0.3*(z*z-y*y)/2.0*1.11E-2'
[../]
[./clamp_y]
type = FunctionPresetBC
variable = disp_y
boundary = left
function = '-0.3*z*y*1.11E-2'
[../]
[./clamp_x]
type = PresetBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./end_stress]
type = FunctionNeumannBC
boundary = right
function = z*1.2*1.11E-2
variable = disp_x
[../]
[./fix_wc_x]
type = FunctionPresetBC
variable = wc_x
boundary = 'left' # right top bottom front back'
function = '0.3*y*1.11E-2'
[../]
[./fix_wc_y]
type = FunctionPresetBC
variable = wc_y
boundary = 'left' # right top bottom front back'
function = '1.11E-2*x'
[../]
[./end_moment]
type = VectorNeumannBC
boundary = right
variable = wc_y
vector_value = '2.3785714286E-3 0 0'
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./strain_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xy
index_i = 0
index_j = 1
[../]
[./strain_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xz
index_i = 0
index_j = 2
[../]
[./strain_yx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yx
index_i = 1
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 1
index_j = 2
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 2
index_j = 0
[../]
[./strain_zy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zy
index_i = 2
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./couple_stress_xx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xx
index_i = 0
index_j = 0
[../]
[./couple_stress_xy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xy
index_i = 0
index_j = 1
[../]
[./couple_stress_xz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xz
index_i = 0
index_j = 2
[../]
[./couple_stress_yx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yx
index_i = 1
index_j = 0
[../]
[./couple_stress_yy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yy
index_i = 1
index_j = 1
[../]
[./couple_stress_yz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yz
index_i = 1
index_j = 2
[../]
[./couple_stress_zx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zx
index_i = 2
index_j = 0
[../]
[./couple_stress_zy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zy
index_i = 2
index_j = 1
[../]
[./couple_stress_zz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zz
index_i = 2
index_j = 2
[../]
[]
[VectorPostprocessors]
[./soln]
type = LineValueSampler
sort_by = x
variable = 'disp_x disp_y disp_z stress_xx stress_xy stress_xz stress_yx stress_yy stress_yz stress_zx stress_zy stress_zz wc_x wc_y wc_z couple_stress_xx couple_stress_xy couple_stress_xz couple_stress_yx couple_stress_yy couple_stress_yz couple_stress_zx couple_stress_zy couple_stress_zz'
start_point = '0 0 0.5'
end_point = '10 0 0.5'
num_points = 11
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 1.2
poisson = 0.3
layer_thickness = 2.0
joint_normal_stiffness = 1E16
joint_shear_stiffness = 0.1
[../]
[./strain]
type = ComputeCosseratSmallStrain
[../]
[./stress]
type = ComputeCosseratLinearElasticStress
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol -ksp_max_it -sub_pc_factor_shift_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'gmres asm lu 1E-11 1E-11 10 1E-15 1E-10 100 NONZERO 2 100'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
num_steps = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = beam_cosserat_02_apply_stress
exodus = true
csv = true
[]
modules/level_set/test/tests/kernels/olsson_reinitialization/olsson_1d.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 8
ny = 8
uniform_refine = 2
[]
[Variables]
[./phi]
[../]
[]
[AuxVariables]
[./phi_0]
family = MONOMIAL
order = FIRST
[../]
[./phi_exact]
[../]
[]
[AuxKernels]
[./phi_exact]
type = FunctionAux
function = phi_exact
variable = phi_exact
[../]
[]
[Functions]
[./phi_initial]
type = ParsedFunction
value = '1-x'
[../]
[./phi_exact]
type = ParsedFunction
vars = epsilon
vals = 0.05
value = '1 / (1+exp((x-0.5)/epsilon))'
[../]
[]
[ICs]
[./phi_ic]
type = FunctionIC
function = phi_initial
variable = phi
[../]
[./phi_0_ic]
type = FunctionIC
function = phi_initial
variable = phi_0
[../]
[]
[Kernels]
[./time]
type = TimeDerivative
variable = phi
[../]
[./reinit]
type = LevelSetOlssonReinitialization
variable = phi
phi_0 = phi_0
epsilon = 0.05
[../]
[]
[UserObjects]
[./arnold]
type = LevelSetOlssonTerminator
tol = 0.1
[../]
[]
[Postprocessors]
[./error]
type = ElementL2Error
variable = phi
function = phi_exact
execute_on = 'initial timestep_end'
[../]
[./ndofs]
type = NumDOFs
[../]
[]
[VectorPostprocessors]
[./line]
type = LineValueSampler
start_point = '0 0.5 0'
end_point = '1 0.5 0'
variable = phi
num_points = 100
sort_by = x
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
l_max_its = 100
nl_max_its = 100
solve_type = PJFNK
num_steps = 10
start_time = 0
nl_abs_tol = 1e-13
scheme = implicit-euler
dt = 0.05
petsc_options_iname = '-pc_type -pc_sub_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 300'
[]
[Outputs]
exodus = true
[./out]
type = CSV
time_data = true
file_base = output/olsson_1d_out
[../]
[]
modules/porous_flow/test/tests/sinks/injection_production_eg.i
# phase = 0 is liquid phase
# phase = 1 is gas phase
# fluid_component = 0 is water
# fluid_component = 1 is CO2
# Constant rate of CO2 injection into the left boundary
# 1D mesh
# The PorousFlowPiecewiseLinearSinks remove the correct water and CO2 from the right boundary
# Note i take pretty big timesteps here so the system is quite nonlinear
[Mesh]
type = GeneratedMesh
dim = 1
nx = 20
xmax = 20
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[AuxVariables]
[./saturation_gas]
order = CONSTANT
family = MONOMIAL
[../]
[./frac_water_in_liquid]
initial_condition = 1.0
[../]
[./frac_water_in_gas]
initial_condition = 0.0
[../]
[]
[AuxKernels]
[./saturation_gas]
type = PorousFlowPropertyAux
variable = saturation_gas
property = saturation
phase = 1
execute_on = timestep_end
[../]
[]
[Variables]
[./pwater]
initial_condition = 20E6
[../]
[./pgas]
initial_condition = 20.1E6
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pwater
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pwater
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = pgas
[../]
[./flux1]
type = PorousFlowAdvectiveFlux
fluid_component = 1
variable = pgas
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'pgas pwater'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
alpha = 1E-6
m = 0.6
[../]
[]
[Modules]
[./FluidProperties]
[./true_water]
type = Water97FluidProperties
[../]
[./tabulated_water]
type = TabulatedFluidProperties
fp = true_water
temperature_min = 275
pressure_max = 1E8
interpolated_properties = 'density viscosity enthalpy internal_energy'
fluid_property_file = water97_tabulated_11.csv
[../]
[./true_co2]
type = CO2FluidProperties
[../]
[./tabulated_co2]
type = TabulatedFluidProperties
fp = true_co2
temperature_min = 275
pressure_max = 1E8
interpolated_properties = 'density viscosity enthalpy internal_energy'
fluid_property_file = co2_tabulated_11.csv
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
temperature = 293.15
[../]
[./saturation_calculator]
type = PorousFlow2PhasePP
phase0_porepressure = pwater
phase1_porepressure = pgas
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = 'frac_water_in_liquid frac_water_in_gas'
[../]
[./water]
type = PorousFlowSingleComponentFluid
fp = tabulated_water
phase = 0
[../]
[./co2]
type = PorousFlowSingleComponentFluid
fp = tabulated_co2
phase = 1
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.2
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1e-12 0 0 0 1e-12 0 0 0 1e-12'
[../]
[./relperm_water]
type = PorousFlowRelativePermeabilityCorey
n = 2
phase = 0
s_res = 0.1
sum_s_res = 0.2
[../]
[./relperm_gas]
type = PorousFlowRelativePermeabilityBC
nw_phase = true
lambda = 2
s_res = 0.1
sum_s_res = 0.2
phase = 1
[../]
[]
[BCs]
[./co2_injection]
type = PorousFlowSink
boundary = left
variable = pgas # pgas is associated with the CO2 mass balance (fluid_component = 1 in its Kernels)
flux_function = -1E-2 # negative means a source, rather than a sink
[../]
[./right_water]
type = PorousFlowPiecewiseLinearSink
boundary = right
# a sink of water, since the Kernels given to pwater are for fluid_component = 0 (the water)
variable = pwater
# this Sink is a function of liquid porepressure
# Also, all the mass_fraction, mobility and relperm are referenced to the liquid phase now
fluid_phase = 0
# Sink strength = (Pwater - 20E6)
pt_vals = '0 1E9'
multipliers = '0 1E9'
PT_shift = 20E6
# multiply Sink strength computed above by mass fraction of water at the boundary
mass_fraction_component = 0
# also multiply Sink strength by mobility of the liquid
use_mobility = true
# also multiply Sink strength by the relperm of the liquid
use_relperm = true
# also multiplly Sink strength by 1/L, where L is the distance to the fixed-porepressure external environment
flux_function = 10 # 1/L
[../]
[./right_co2]
type = PorousFlowPiecewiseLinearSink
boundary = right
variable = pgas
fluid_phase = 1
pt_vals = '0 1E9'
multipliers = '0 1E9'
PT_shift = 20.1E6
mass_fraction_component = 1
use_mobility = true
use_relperm = true
flux_function = 10 # 1/L
[../]
[]
[Preconditioning]
active = 'basic'
[./basic]
type = SMP
full = true
petsc_options = '-snes_converged_reason -ksp_diagonal_scale -ksp_diagonal_scale_fix -ksp_gmres_modifiedgramschmidt -snes_linesearch_monitor'
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = 'gmres asm lu NONZERO 2'
[../]
[./preferred]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu mumps'
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1E-13
nl_rel_tol = 1E-10
end_time = 1e4
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1E4
growth_factor = 1.1
[../]
[]
[VectorPostprocessors]
[./pps]
type = LineValueSampler
start_point = '0 0 0'
end_point = '20 0 0'
num_points = 20
sort_by = x
variable = 'pgas pwater saturation_gas'
[../]
[]
[Outputs]
print_linear_residuals = false
perf_graph = true
[./out]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/relperm/corey4.i
# Test Corey relative permeability curve by varying saturation over the mesh
# Residual saturation of phase 0: s0r = 0.2
# Residual saturation of phase 1: s1r = 0.3
[Mesh]
type = GeneratedMesh
dim = 1
nx = 20
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./p0]
initial_condition = 1e6
[../]
[./s1]
family = LAGRANGE
order = FIRST
[../]
[]
[AuxVariables]
[./s0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./s1aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr1aux]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./s0]
type = PorousFlowPropertyAux
property = saturation
phase = 0
variable = s0aux
[../]
[./s1]
type = PorousFlowPropertyAux
property = saturation
phase = 1
variable = s1aux
[../]
[./kr0]
type = PorousFlowPropertyAux
property = relperm
phase = 0
variable = kr0aux
[../]
[./kr1]
type = PorousFlowPropertyAux
property = relperm
phase = 1
variable = kr1aux
[../]
[]
[Functions]
[./s1]
type = ParsedFunction
value = x
[../]
[]
[ICs]
[./s1]
type = FunctionIC
variable = s1
function = s1
[../]
[]
[Kernels]
[./p0]
type = Diffusion
variable = p0
[../]
[./s1]
type = Diffusion
variable = s1
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'p0 s1'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
pc = 0
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = p0
phase1_saturation = s1
capillary_pressure = pc
[../]
[./kr0]
type = PorousFlowRelativePermeabilityCorey
scaling = 0.1
phase = 0
n = 2
s_res = 0.2
sum_s_res = 0.5
[../]
[./kr1]
type = PorousFlowRelativePermeabilityCorey
scaling = 10.0
phase = 1
n = 2
s_res = 0.3
sum_s_res = 0.5
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = 's0aux s1aux kr0aux kr1aux'
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 20
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-8
[]
[BCs]
[./sleft]
type = DirichletBC
variable = s1
value = 0
boundary = left
[../]
[./sright]
type = DirichletBC
variable = s1
value = 1
boundary = right
[../]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
modules/porous_flow/examples/flow_through_fractured_media/fine_thick_fracture_transient.i
# Using a single-dimensional mesh
# Transient flow and solute transport along a fracture in a porous matrix
# advective dominated flow in the fracture and diffusion into the porous matrix
#
# Note that fine_thick_fracture_steady.i must be run to initialise the porepressure properly
[Mesh]
file = 'gold/fine_thick_fracture_steady_out.e'
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./pp]
initial_from_file_var = pp
initial_from_file_timestep = 1
[../]
[./massfrac0]
[../]
[]
[AuxVariables]
[./velocity_x]
family = MONOMIAL
order = CONSTANT
block = fracture
[../]
[./velocity_y]
family = MONOMIAL
order = CONSTANT
block = fracture
[../]
[]
[AuxKernels]
[./velocity_x]
type = PorousFlowDarcyVelocityComponent
variable = velocity_x
component = x
[../]
[./velocity_y]
type = PorousFlowDarcyVelocityComponent
variable = velocity_y
component = y
[../]
[]
[ICs]
[./massfrac0]
type = ConstantIC
variable = massfrac0
value = 0
[../]
[]
[BCs]
[./top]
type = PresetBC
value = 0
variable = massfrac0
boundary = top
[../]
[./bottom]
type = PresetBC
value = 1
variable = massfrac0
boundary = bottom
[../]
[./ptop]
type = PresetBC
variable = pp
boundary = top
value = 1e6
[../]
[./pbottom]
type = PresetBC
variable = pp
boundary = bottom
value = 1.002e6
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pp
[../]
[./adv0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pp
[../]
[./diff0]
type = PorousFlowDispersiveFlux
fluid_component = 0
variable = pp
disp_trans = 0
disp_long = 0
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = massfrac0
[../]
[./adv1]
type = PorousFlowAdvectiveFlux
fluid_component = 1
variable = massfrac0
[../]
[./diff1]
type = PorousFlowDispersiveFlux
fluid_component = 1
variable = massfrac0
disp_trans = 0
disp_long = 0
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'pp massfrac0'
number_fluid_phases = 1
number_fluid_components = 2
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 1000
thermal_expansion = 0
viscosity = 1e-3
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow1PhaseFullySaturated
porepressure = pp
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = massfrac0
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./poro_fracture]
type = PorousFlowPorosityConst
porosity = 1.0 # this is the true porosity of the fracture
block = 'fracture'
[../]
[./poro_matrix]
type = PorousFlowPorosityConst
porosity = 0.1
block = 'matrix1 matrix2'
[../]
[./diff1]
type = PorousFlowDiffusivityConst
diffusion_coeff = '1e-9 1e-9'
tortuosity = 1.0
block = 'fracture'
[../]
[./diff2]
type = PorousFlowDiffusivityConst
diffusion_coeff = '1e-9 1e-9'
tortuosity = 0.1
block = 'matrix1 matrix2'
[../]
[./relp]
type = PorousFlowRelativePermeabilityConst
phase = 0
[../]
[./permeability1]
type = PorousFlowPermeabilityConst
permeability = '3e-8 0 0 0 3e-8 0 0 0 3e-8' # this is the true permeability of the fracture
block = 'fracture'
[../]
[./permeability2]
type = PorousFlowPermeabilityConst
permeability = '1e-20 0 0 0 1e-20 0 0 0 1e-20'
block = 'matrix1 matrix2'
[../]
[]
[Functions]
[./dt_controller]
type = PiecewiseConstant
x = '0 30 40 100 200 83200'
y = '0.01 0.1 1 10 100 32'
[../]
[]
[Preconditioning]
active = basic
[./mumps_is_best_for_parallel_jobs]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[./basic]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = 'gmres asm lu NONZERO 2 '
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
end_time = 86400
#dt = 0.01
[./TimeStepper]
type = FunctionDT
function = dt_controller
[../]
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-9
[]
[VectorPostprocessors]
[./xmass]
type = LineValueSampler
start_point = '0.4 0 0'
end_point = '0.5 0 0'
sort_by = x
num_points = 167
variable = massfrac0
[../]
[]
[Outputs]
perf_graph = true
console = true
csv = true
exodus = true
[]
modules/porous_flow/test/tests/rogers_stallybrass_clements/rsc01.i
# RSC test with high-res time and spatial resolution
[Mesh]
type = GeneratedMesh
dim = 2
nx = 600
ny = 1
xmin = 0
xmax = 10 # x is the depth variable, called zeta in RSC
ymin = 0
ymax = 0.05
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Functions]
[./dts]
type = PiecewiseLinear
y = '3E-3 3E-2 0.05'
x = '0 1 5'
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'pwater poil'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureRSC
oil_viscosity = 2E-3
scale_ratio = 2E3
shift = 10
[../]
[]
[Modules]
[./FluidProperties]
[./water]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 10
thermal_expansion = 0
viscosity = 1e-3
[../]
[./oil]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 20
thermal_expansion = 0
viscosity = 2e-3
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePP
phase0_porepressure = pwater
phase1_porepressure = poil
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = 'massfrac_ph0_sp0 massfrac_ph1_sp0'
[../]
[./water]
type = PorousFlowSingleComponentFluid
fp = water
phase = 0
compute_enthalpy = false
compute_internal_energy = false
[../]
[./oil]
type = PorousFlowSingleComponentFluid
fp = oil
phase = 1
compute_enthalpy = false
compute_internal_energy = false
[../]
[./relperm_water]
type = PorousFlowRelativePermeabilityCorey
n = 1
phase = 0
[../]
[./relperm_oil]
type = PorousFlowRelativePermeabilityCorey
n = 1
phase = 1
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.25
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-5 0 0 0 1E-5 0 0 0 1E-5'
[../]
[]
[Variables]
[./pwater]
[../]
[./poil]
[../]
[]
[ICs]
[./water_init]
type = ConstantIC
variable = pwater
value = 0
[../]
[./oil_init]
type = ConstantIC
variable = poil
value = 15
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pwater
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pwater
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = poil
[../]
[./flux1]
type = PorousFlowAdvectiveFlux
fluid_component = 1
variable = poil
[../]
[]
[AuxVariables]
[./SWater]
family = MONOMIAL
order = CONSTANT
[../]
[./SOil]
family = MONOMIAL
order = CONSTANT
[../]
[./massfrac_ph0_sp0]
initial_condition = 1
[../]
[./massfrac_ph1_sp0]
initial_condition = 0
[../]
[]
[AuxKernels]
[./SWater]
type = MaterialStdVectorAux
property = PorousFlow_saturation_qp
index = 0
variable = SWater
[../]
[./SOil]
type = MaterialStdVectorAux
property = PorousFlow_saturation_qp
index = 1
variable = SOil
[../]
[]
[BCs]
# we are pumping water into a system that has virtually incompressible fluids, hence the pressures rise enormously. this adversely affects convergence because of almost-overflows and precision-loss problems. The fixed things help keep pressures low and so prevent these awful behaviours. the movement of the saturation front is the same regardless of the fixed things.
active = 'recharge fixedoil fixedwater'
[./recharge]
type = PorousFlowSink
variable = pwater
boundary = 'left'
flux_function = -1.0
[../]
[./fixedwater]
type = PresetBC
variable = pwater
boundary = 'right'
value = 0
[../]
[./fixedoil]
type = PresetBC
variable = poil
boundary = 'right'
value = 15
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason -ksp_diagonal_scale -ksp_diagonal_scale_fix -ksp_gmres_modifiedgramschmidt -snes_linesearch_monitor'
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu NONZERO 2 1E-10 1E-10 10000'
[../]
[]
[VectorPostprocessors]
[./swater]
type = LineValueSampler
variable = SWater
start_point = '0 0 0'
end_point = '7 0 0'
sort_by = x
num_points = 21
execute_on = timestep_end
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_converged_reason'
end_time = 5
[./TimeStepper]
type = FunctionDT
function = dts
[../]
[]
[Outputs]
file_base = rsc01
[./along_line]
type = CSV
execute_vector_postprocessors_on = final
[../]
[./exodus]
type = Exodus
execute_on = 'initial final'
[../]
[]
modules/porous_flow/test/tests/relperm/unity.i
# Test perfectly mobile relative permeability curve by varying saturation over the mesh
[Mesh]
type = GeneratedMesh
dim = 1
nx = 20
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./p0]
initial_condition = 1e6
[../]
[./s1]
[../]
[]
[AuxVariables]
[./s0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./s1aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr1aux]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./s0]
type = PorousFlowPropertyAux
property = saturation
phase = 0
variable = s0aux
[../]
[./s1]
type = PorousFlowPropertyAux
property = saturation
phase = 1
variable = s1aux
[../]
[./kr0]
type = PorousFlowPropertyAux
property = relperm
phase = 0
variable = kr0aux
[../]
[./kr1]
type = PorousFlowPropertyAux
property = relperm
phase = 1
variable = kr1aux
[../]
[]
[Functions]
[./s1]
type = ParsedFunction
value = x
[../]
[]
[ICs]
[./s1]
type = FunctionIC
variable = s1
function = s1
[../]
[]
[Kernels]
[./p0]
type = Diffusion
variable = p0
[../]
[./s1]
type = Diffusion
variable = s1
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'p0 s1'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
pc = 0
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = p0
phase1_saturation = s1
capillary_pressure = pc
[../]
[./kr0]
type = PorousFlowRelativePermeabilityConst
phase = 0
[../]
[./kr1]
type = PorousFlowRelativePermeabilityConst
phase = 1
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = 's0aux s1aux kr0aux kr1aux'
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 20
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-8
[]
[BCs]
[./sleft]
type = DirichletBC
variable = s1
value = 0
boundary = left
[../]
[./sright]
type = DirichletBC
variable = s1
value = 1
boundary = right
[../]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
modules/porous_flow/test/tests/thm_rehbinder/free_outer.i
[Mesh]
type = AnnularMesh
nr = 40
nt = 16
rmin = 0.1
rmax = 1
tmin = 0.0
tmax = 1.570796326795
growth_r = 1.1
[]
[MeshModifiers]
[./make3D]
type = MeshExtruder
bottom_sideset = bottom
top_sideset = top
extrusion_vector = '0 0 1'
num_layers = 1
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
biot_coefficient = 1.0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./porepressure]
[../]
[./temperature]
[../]
[]
[BCs]
# sideset 1 = outer
# sideset 2 = cavity
# sideset 3 = ymin
# sideset 4 = xmin
[./plane_strain]
type = PresetBC
variable = disp_z
value = 0
boundary = 'top bottom'
[../]
[./ymin]
type = PresetBC
variable = disp_y
value = 0
boundary = tmin
[../]
[./xmin]
type = PresetBC
variable = disp_x
value = 0
boundary = tmax
[../]
[./cavity_temperature]
type = DirichletBC
variable = temperature
value = 1000
boundary = rmin
[../]
[./cavity_porepressure]
type = DirichletBC
variable = porepressure
value = 1E6
boundary = rmin
[../]
[./cavity_zero_effective_stress_x]
type = Pressure
component = 0
variable = disp_x
function = 1E6
boundary = rmin
use_displaced_mesh = false
[../]
[./cavity_zero_effective_stress_y]
type = Pressure
component = 1
variable = disp_y
function = 1E6
boundary = rmin
use_displaced_mesh = false
[../]
[./outer_temperature]
type = PresetBC
variable = temperature
value = 0
boundary = rmax
[../]
[./outer_pressure]
type = PresetBC
variable = porepressure
value = 0
boundary = rmax
[../]
[]
[AuxVariables]
[./stress_rr]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_pp]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./stress_rr]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = stress_rr
scalar_type = RadialStress
point1 = '0 0 0'
point2 = '0 0 1'
[../]
[./stress_pp]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = stress_pp
scalar_type = HoopStress
point1 = '0 0 0'
point2 = '0 0 1'
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
thermal_expansion = 0.0
bulk_modulus = 1E12
viscosity = 1.0E-3
density0 = 1000.0
cv = 1000.0
cp = 1000.0
porepressure_coefficient = 0.0
[../]
[../]
[]
[PorousFlowBasicTHM]
coupling_type = ThermoHydroMechanical
multiply_by_density = false
add_stress_aux = true
porepressure = porepressure
temperature = temperature
thermal_eigenstrain_name = thermal_contribution
gravity = '0 0 0'
fp = the_simple_fluid
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1E10
poissons_ratio = 0.2
[../]
[./strain]
type = ComputeSmallStrain
eigenstrain_names = thermal_contribution
[../]
[./thermal_contribution]
type = ComputeThermalExpansionEigenstrain
temperature = temperature
thermal_expansion_coeff = 1E-6
eigenstrain_name = thermal_contribution
stress_free_temperature = 0.0
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./porosity]
type = PorousFlowPorosityConst # only the initial value of this is ever used
porosity = 0.1
[../]
[./biot_modulus]
type = PorousFlowConstantBiotModulus
solid_bulk_compliance = 1E-10
fluid_bulk_modulus = 1E12
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-12 0 0 0 1E-12 0 0 0 1E-12'
[../]
[./thermal_expansion]
type = PorousFlowConstantThermalExpansionCoefficient
fluid_coefficient = 1E-6
drained_coefficient = 1E-6
[../]
[./thermal_conductivity]
type = PorousFlowThermalConductivityIdeal
dry_thermal_conductivity = '1E6 0 0 0 1E6 0 0 0 1E6'
[../]
[]
[VectorPostprocessors]
[./P]
type = LineValueSampler
start_point = '0.1 0 0'
end_point = '1.0 0 0'
num_points = 10
sort_by = x
variable = porepressure
[../]
[./T]
type = LineValueSampler
start_point = '0.1 0 0'
end_point = '1.0 0 0'
num_points = 10
sort_by = x
variable = temperature
[../]
[./U]
type = LineValueSampler
start_point = '0.1 0 0'
end_point = '1.0 0 0'
num_points = 10
sort_by = x
variable = disp_x
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_rtol'
petsc_options_value = 'gmres asm lu 1E-8'
[../]
[]
[Executioner]
type = Steady
solve_type = Newton
[]
[Outputs]
file_base = free_outer
execute_on = timestep_end
csv = true
[]
modules/porous_flow/test/tests/pressure_pulse/pressure_pulse_1d_2phasePSVG.i
# Pressure pulse in 1D with 2 phases, 2components - transient
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0
xmax = 100
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./ppwater]
initial_condition = 2e6
[../]
[./sgas]
initial_condition = 0.3
[../]
[]
[AuxVariables]
[./massfrac_ph0_sp0]
initial_condition = 1
[../]
[./massfrac_ph1_sp0]
initial_condition = 0
[../]
[./ppgas]
family = MONOMIAL
order = FIRST
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = ppwater
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
variable = ppwater
fluid_component = 0
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = sgas
[../]
[./flux1]
type = PorousFlowAdvectiveFlux
variable = sgas
fluid_component = 1
[../]
[]
[AuxKernels]
[./ppgas]
type = PorousFlowPropertyAux
property = pressure
phase = 1
variable = ppgas
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'ppwater sgas'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
m = 0.5
alpha = 1e-4
sat_lr = 0.3
pc_max = 1e6
log_extension = false
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid0]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 1000
thermal_expansion = 0
viscosity = 1e-3
[../]
[./simple_fluid1]
type = SimpleFluidProperties
bulk_modulus = 2e7
density0 = 1
thermal_expansion = 0
viscosity = 1e-5
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = ppwater
phase1_saturation = sgas
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = 'massfrac_ph0_sp0 massfrac_ph1_sp0'
[../]
[./simple_fluid0]
type = PorousFlowSingleComponentFluid
fp = simple_fluid0
phase = 0
[../]
[./simple_fluid1]
type = PorousFlowSingleComponentFluid
fp = simple_fluid1
phase = 1
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1e-15 0 0 0 1e-15 0 0 0 1e-15'
[../]
[./relperm_water]
type = PorousFlowRelativePermeabilityCorey
n = 1
phase = 0
[../]
[./relperm_gas]
type = PorousFlowRelativePermeabilityCorey
n = 1
phase = 1
[../]
[]
[BCs]
[./leftwater]
type = DirichletBC
boundary = left
value = 3e6
variable = ppwater
[../]
[./rightwater]
type = DirichletBC
boundary = right
value = 2e6
variable = ppwater
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'bcgs bjacobi 1E-15 1E-20 10000'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
dt = 1e3
end_time = 1e4
[]
[VectorPostprocessors]
[./pp]
type = LineValueSampler
sort_by = x
variable = 'ppwater ppgas'
start_point = '0 0 0'
end_point = '100 0 0'
num_points = 11
[../]
[]
[Outputs]
file_base = pressure_pulse_1d_2phasePSVG
print_linear_residuals = false
[./csv]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/flux_limited_TVD_advection/fltvd_1D_adaptivity.i
# Using Flux-Limited TVD Advection ala Kuzmin and Turek, with antidiffusion from superbee flux limiting
# 1D version with mesh adaptivity
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0
xmax = 1
[]
[Adaptivity]
initial_steps = 1
initial_marker = tracer_marker
marker = tracer_marker
max_h_level = 1
[./Markers]
[./tracer_marker]
type = ValueRangeMarker
variable = tracer
lower_bound = 0.02
upper_bound = 0.98
[../]
[../]
[]
[Variables]
[./tracer]
[../]
[]
[ICs]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[Kernels]
[./mass_dot]
type = MassLumpedTimeDerivative
variable = tracer
[../]
[./flux]
type = FluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = fluo
[../]
[]
[UserObjects]
[./fluo]
type = AdvectiveFluxCalculatorConstantVelocity
flux_limiter_type = superbee
u = tracer
velocity = '0.1 0 0'
[../]
[]
[BCs]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_tracer]
# Ideally, an OutflowBC would be used, but that does not exist in the framework
# In 1D VacuumBC is the same as OutflowBC, with the alpha parameter being twice the velocity
type = VacuumBC
boundary = right
alpha = 0.2 # 2 * velocity
variable = tracer
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 11
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
nl_abs_tol = 1E-8
nl_max_its = 500
timestep_tolerance = 1E-3
[]
[Outputs]
print_linear_residuals = false
[./out]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/broadbridge_white/bw02.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 200
ny = 1
xmin = -10
xmax = 10
ymin = 0
ymax = 0.05
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Functions]
[./dts]
type = PiecewiseLinear
y = '1E-1 5E-1 5E-1'
x = '0 1 10'
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = pressure
number_fluid_phases = 1
number_fluid_components = 1
[../]
[./pc]
type = PorousFlowCapillaryPressureBW
Sn = 0.0
Ss = 1.0
C = 1.5
las = 2
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e9
viscosity = 4
density0 = 10
thermal_expansion = 0
[../]
[../]
[]
[Materials]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./temperature]
type = PorousFlowTemperature
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = pressure
capillary_pressure = pc
[../]
[./relperm]
type = PorousFlowRelativePermeabilityBW
Sn = 0.0
Ss = 1.0
Kn = 0
Ks = 1
C = 1.5
phase = 0
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.25
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1 0 0 0 1 0 0 0 1'
[../]
[]
[Variables]
[./pressure]
initial_condition = -9E2
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pressure
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pressure
gravity = '-0.1 0 0'
[../]
[]
[AuxVariables]
[./SWater]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./SWater]
type = MaterialStdVectorAux
property = PorousFlow_saturation_qp
index = 0
variable = SWater
[../]
[]
[BCs]
[./recharge]
type = PorousFlowSink
variable = pressure
boundary = right
flux_function = -1.25 # corresponds to Rstar being 0.5 because i have to multiply by density*porosity
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason -ksp_diagonal_scale -ksp_diagonal_scale_fix -ksp_gmres_modifiedgramschmidt -snes_linesearch_monitor'
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu NONZERO 2 1E-10 1E-10 10000'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_converged_reason'
end_time = 2
[./TimeStepper]
type = FunctionDT
function = dts
[../]
[]
[VectorPostprocessors]
[./swater]
type = LineValueSampler
variable = SWater
start_point = '-10 0 0'
end_point = '10 0 0'
sort_by = x
num_points = 80
execute_on = timestep_end
[../]
[]
[Outputs]
file_base = bw02
sync_times = '0.5 2 8'
[./exodus]
type = Exodus
sync_only = true
[../]
[./along_line]
type = CSV
sync_only = true
[../]
[]
modules/porous_flow/test/tests/flux_limited_TVD_advection/fltvd_2D_blocks.i
# Using Flux-Limited TVD Advection ala Kuzmin and Turek
# 2D version with blocks
# Top block: tracer is defined here, with velocity = (0.1, 0, 0)
# Central block: tracer is not defined here
# Bottom block: tracer is defined here, with velocity = (-0.1, 0, 0)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
xmin = 0
xmax = 1
ny = 5
ymin = 0
ymax = 1
[]
[MeshModifiers]
[./top]
type = SubdomainBoundingBox
bottom_left = '0 0.6 0'
top_right = '1 1 0'
block_id = 1
[../]
[./center]
type = SubdomainBoundingBox
bottom_left = '0 0.4 0'
top_right = '1 0.6 0'
block_id = 2
[../]
[./bottom]
type = SubdomainBoundingBox
bottom_left = '0 0 0'
top_right = '1 0.6 0'
block_id = 3
[../]
[./split_bdys]
type = BreakBoundaryOnSubdomain
depends_on = 'top center bottom'
boundaries = 'left right'
[../]
[]
[GlobalParams]
block = '1 2 3'
[]
[Variables]
[./tracer]
block = '1 3'
[../]
[./dummy]
[../]
[]
[ICs]
[./tracer_top]
type = FunctionIC
variable = tracer
function = 'if(x<0.1 | x>0.3, 0, 1)'
block = '1'
[../]
[./tracer_bot]
type = FunctionIC
variable = tracer
function = 'if(x<0.7 | x > 0.9, 0, 1)'
block = '3'
[../]
[]
[Kernels]
[./mass_dot]
type = MassLumpedTimeDerivative
variable = tracer
block = '1 3'
[../]
[./flux_top]
type = FluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = fluo_top
block = '1'
[../]
[./flux_bot]
type = FluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = fluo_bot
block = '3'
[../]
[.dummy]
type = TimeDerivative
variable = dummy
[../]
[]
[UserObjects]
[./fluo_top]
type = AdvectiveFluxCalculatorConstantVelocity
flux_limiter_type = superbee
u = tracer
velocity = '0.1 0 0'
block = '1'
[../]
[./fluo_bot]
type = AdvectiveFluxCalculatorConstantVelocity
flux_limiter_type = superbee
u = tracer
velocity = '-0.1 0 0'
block = '3'
[../]
[]
[BCs]
[./no_tracer_on_left_top]
type = PresetBC
variable = tracer
value = 0
boundary = 'left_to_1'
[../]
[./remove_tracer_top]
# Ideally, an OutflowBC would be used, but that does not exist in the framework
# In 1D VacuumBC is the same as OutflowBC, with the alpha parameter being twice the velocity
type = VacuumBC
boundary = 'right_to_1'
alpha = 0.2 # 2 * velocity
variable = tracer
[../]
[./no_tracer_on_left_bot]
# Ideally, an OutflowBC would be used, but that does not exist in the framework
# In 1D VacuumBC is the same as OutflowBC, with the alpha parameter being twice the velocity
type = VacuumBC
boundary = 'left_to_3'
alpha = 0.2 # 2 * velocity
variable = tracer
[../]
[./remove_tracer_bot]
type = PresetBC
variable = tracer
value = 0
boundary = 'right_to_3'
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer_bot]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 11
sort_by = x
variable = tracer
[../]
[./tracer_top]
type = LineValueSampler
start_point = '0 1 0'
end_point = '1 1 0'
num_points = 11
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
timestep_tolerance = 1E-3
[]
[Outputs]
print_linear_residuals = false
[./out]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/relperm/brooks_corey2.i
# Test Brooks-Corey relative permeability curve by varying saturation over the mesh
# Exponent lambda = 2 for both phases
# Residual saturation of phase 0: s0r = 0.2
# Residual saturation of phase 1: s1r = 0.3
[Mesh]
type = GeneratedMesh
dim = 1
nx = 20
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./p0]
initial_condition = 1e6
[../]
[./s1]
[../]
[]
[AuxVariables]
[./s0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./s1aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr1aux]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./s0]
type = PorousFlowPropertyAux
property = saturation
phase = 0
variable = s0aux
[../]
[./s1]
type = PorousFlowPropertyAux
property = saturation
phase = 1
variable = s1aux
[../]
[./kr0]
type = PorousFlowPropertyAux
property = relperm
phase = 0
variable = kr0aux
[../]
[./kr1]
type = PorousFlowPropertyAux
property = relperm
phase = 1
variable = kr1aux
[../]
[]
[Functions]
[./s1]
type = ParsedFunction
value = x
[../]
[]
[ICs]
[./s1]
type = FunctionIC
variable = s1
function = s1
[../]
[]
[Kernels]
[./p0]
type = Diffusion
variable = p0
[../]
[./s1]
type = Diffusion
variable = s1
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'p0 s1'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
pc = 0
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = p0
phase1_saturation = s1
capillary_pressure = pc
[../]
[./kr0]
type = PorousFlowRelativePermeabilityBC
phase = 0
lambda = 2
s_res = 0.2
sum_s_res = 0.5
[../]
[./kr1]
type = PorousFlowRelativePermeabilityBC
phase = 1
lambda = 2
nw_phase = true
s_res = 0.3
sum_s_res = 0.5
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = 's0aux s1aux kr0aux kr1aux'
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 20
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-8
[]
[BCs]
[./sleft]
type = DirichletBC
variable = s1
value = 0
boundary = left
[../]
[./sright]
type = DirichletBC
variable = s1
value = 1
boundary = right
[../]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
modules/phase_field/examples/kim-kim-suzuki/kks_example_noflux.i
#
# KKS simple example in the split form
#
[Mesh]
type = GeneratedMesh
dim = 2
nx = 150
ny = 15
nz = 0
xmin = -25
xmax = 25
ymin = -2.5
ymax = 2.5
zmin = 0
zmax = 0
elem_type = QUAD4
[]
[AuxVariables]
[./Fglobal]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Variables]
# order parameter
[./eta]
order = FIRST
family = LAGRANGE
[../]
# solute concentration
[./c]
order = FIRST
family = LAGRANGE
[../]
# chemical potential
[./w]
order = FIRST
family = LAGRANGE
[../]
# Liquid phase solute concentration
[./cl]
order = FIRST
family = LAGRANGE
initial_condition = 0.1
[../]
# Solid phase solute concentration
[./cs]
order = FIRST
family = LAGRANGE
initial_condition = 0.9
[../]
[]
[Functions]
[./ic_func_eta]
type = ParsedFunction
value = '0.5*(1.0-tanh((x)/sqrt(2.0)))'
[../]
[./ic_func_c]
type = ParsedFunction
value = '0.9*(0.5*(1.0-tanh(x/sqrt(2.0))))^3*(6*(0.5*(1.0-tanh(x/sqrt(2.0))))^2-15*(0.5*(1.0-tanh(x/sqrt(2.0))))+10)+0.1*(1-(0.5*(1.0-tanh(x/sqrt(2.0))))^3*(6*(0.5*(1.0-tanh(x/sqrt(2.0))))^2-15*(0.5*(1.0-tanh(x/sqrt(2.0))))+10))'
[../]
[]
[ICs]
[./eta]
variable = eta
type = FunctionIC
function = ic_func_eta
[../]
[./c]
variable = c
type = FunctionIC
function = ic_func_c
[../]
[]
[Materials]
# Free energy of the liquid
[./fl]
type = DerivativeParsedMaterial
f_name = fl
args = 'cl'
function = '(0.1-cl)^2'
[../]
# Free energy of the solid
[./fs]
type = DerivativeParsedMaterial
f_name = fs
args = 'cs'
function = '(0.9-cs)^2'
[../]
# h(eta)
[./h_eta]
type = SwitchingFunctionMaterial
h_order = HIGH
eta = eta
[../]
# g(eta)
[./g_eta]
type = BarrierFunctionMaterial
g_order = SIMPLE
eta = eta
[../]
# constant properties
[./constants]
type = GenericConstantMaterial
prop_names = 'M L eps_sq'
prop_values = '0.7 0.7 1.0 '
[../]
[]
[Kernels]
active = 'PhaseConc ChemPotSolute CHBulk ACBulkF ACBulkC ACInterface dcdt detadt ckernel'
# enforce c = (1-h(eta))*cl + h(eta)*cs
[./PhaseConc]
type = KKSPhaseConcentration
ca = cl
variable = cs
c = c
eta = eta
[../]
# enforce pointwise equality of chemical potentials
[./ChemPotSolute]
type = KKSPhaseChemicalPotential
variable = cl
cb = cs
fa_name = fl
fb_name = fs
[../]
#
# Cahn-Hilliard Equation
#
[./CHBulk]
type = KKSSplitCHCRes
variable = c
ca = cl
cb = cs
fa_name = fl
fb_name = fs
w = w
[../]
[./dcdt]
type = CoupledTimeDerivative
variable = w
v = c
[../]
[./ckernel]
type = SplitCHWRes
mob_name = M
variable = w
[../]
#
# Allen-Cahn Equation
#
[./ACBulkF]
type = KKSACBulkF
variable = eta
fa_name = fl
fb_name = fs
w = 1.0
args = 'cl cs'
[../]
[./ACBulkC]
type = KKSACBulkC
variable = eta
ca = cl
cb = cs
fa_name = fl
fb_name = fs
[../]
[./ACInterface]
type = ACInterface
variable = eta
kappa_name = eps_sq
[../]
[./detadt]
type = TimeDerivative
variable = eta
[../]
[]
[AuxKernels]
[./GlobalFreeEnergy]
variable = Fglobal
type = KKSGlobalFreeEnergy
fa_name = fl
fb_name = fs
w = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type'
petsc_options_value = 'asm ilu nonzero'
l_max_its = 100
nl_max_its = 100
num_steps = 50
dt = 0.1
[]
#
# Precondition using handcoded off-diagonal terms
#
[Preconditioning]
[./full]
type = SMP
full = true
[../]
[]
[VectorPostprocessors]
[./c]
type = LineValueSampler
start_point = '-25 0 0'
end_point = '25 0 0'
variable = c
num_points = 151
sort_by = id
execute_on = timestep_end
[../]
[./eta]
type = LineValueSampler
start_point = '-25 0 0'
end_point = '25 0 0'
variable = eta
num_points = 151
sort_by = id
execute_on = timestep_end
[../]
[]
[Outputs]
exodus = true
[./csv]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/relperm/vangenuchten1.i
# Test van Genuchten relative permeability curve by varying saturation over the mesh
# van Genuchten exponent m = 0.5 for both phases
# No residual saturation in either phase
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./p0]
initial_condition = 1e6
[../]
[./s1]
[../]
[]
[AuxVariables]
[./s0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./s1aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr1aux]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./s0]
type = PorousFlowPropertyAux
property = saturation
phase = 0
variable = s0aux
[../]
[./s1]
type = PorousFlowPropertyAux
property = saturation
phase = 1
variable = s1aux
[../]
[./kr0]
type = PorousFlowPropertyAux
property = relperm
phase = 0
variable = kr0aux
[../]
[./kr1]
type = PorousFlowPropertyAux
property = relperm
phase = 1
variable = kr1aux
[../]
[]
[Functions]
[./s1]
type = ParsedFunction
value = x
[../]
[]
[ICs]
[./s1]
type = FunctionIC
variable = s1
function = s1
[../]
[]
[Kernels]
[./p0]
type = Diffusion
variable = p0
[../]
[./s1]
type = Diffusion
variable = s1
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'p0 s1'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
pc = 0
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = p0
phase1_saturation = s1
capillary_pressure = pc
[../]
[./kr0]
type = PorousFlowRelativePermeabilityVG
phase = 0
m = 0.5
[../]
[./kr1]
type = PorousFlowRelativePermeabilityVG
phase = 1
m = 0.5
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = 's0aux s1aux kr0aux kr1aux'
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 20
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-7
[]
[BCs]
[./sleft]
type = DirichletBC
variable = s1
value = 0
boundary = left
[../]
[./sright]
type = DirichletBC
variable = s1
value = 1
boundary = right
[../]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
modules/heat_conduction/test/tests/semiconductor_linear_conductivity/steinhart-hart_linear.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
xmax = 1.0
ymax = 1.0
[]
[Variables]
[./T]
initial_condition = 400.0 # unit in Kelvin only!!
[../]
[]
[AuxVariables]
[./elec_conduct]
order = FIRST
family = MONOMIAL
[../]
[]
[Kernels]
[./diff]
type = HeatConduction
variable = T
[../]
[]
[AuxKernels]
[./elec_conduct]
type = MaterialRealAux
variable = elec_conduct
property = electrical_conductivity
execute_on = timestep_end
[../]
[]
[BCs]
[./inlet]
type = DirichletBC
variable = T
boundary = left
value = 1000 # K
[../]
[./outlet]
type = DirichletBC
variable = T
boundary = right
value = 400 # K
[../]
[]
[Materials]
[./k]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity'
prop_values = '10' # in W/mK
[../]
[./sigma]
type = SemiconductorLinearConductivity
temp = T
sh_coeff_A = 0.002
sh_coeff_B = 0.001
[../]
[]
[VectorPostprocessors]
[./line_sample]
type = LineValueSampler
variable = 'T elec_conduct'
start_point = '0 0. 0'
end_point = '1.0 0. 0'
num_points = 11
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = PJFNK
nl_rel_tol = 1e-12
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
execute_on = 'initial timestep_end'
csv = true
[]
modules/porous_flow/test/tests/pressure_pulse/pressure_pulse_1d_2phasePS.i
# Pressure pulse in 1D with 2 phases, 2components - transient
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0
xmax = 100
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./ppwater]
initial_condition = 2e6
[../]
[./sgas]
initial_condition = 0.3
[../]
[]
[AuxVariables]
[./massfrac_ph0_sp0]
initial_condition = 1
[../]
[./massfrac_ph1_sp0]
initial_condition = 0
[../]
[./ppgas]
family = MONOMIAL
order = FIRST
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = ppwater
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
variable = ppwater
fluid_component = 0
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = sgas
[../]
[./flux1]
type = PorousFlowAdvectiveFlux
variable = sgas
fluid_component = 1
[../]
[]
[AuxKernels]
[./ppgas]
type = PorousFlowPropertyAux
property = pressure
phase = 1
variable = ppgas
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'ppwater sgas'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
pc = 1e5
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid0]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 1000
thermal_expansion = 0
viscosity = 1e-3
[../]
[./simple_fluid1]
type = SimpleFluidProperties
bulk_modulus = 2e7
density0 = 1
thermal_expansion = 0
viscosity = 1e-5
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = ppwater
phase1_saturation = sgas
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = 'massfrac_ph0_sp0 massfrac_ph1_sp0'
[../]
[./simple_fluid0]
type = PorousFlowSingleComponentFluid
fp = simple_fluid0
phase = 0
[../]
[./simple_fluid1]
type = PorousFlowSingleComponentFluid
fp = simple_fluid1
phase = 1
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1e-15 0 0 0 1e-15 0 0 0 1e-15'
[../]
[./relperm_water]
type = PorousFlowRelativePermeabilityCorey
n = 1
phase = 0
[../]
[./relperm_gas]
type = PorousFlowRelativePermeabilityCorey
n = 1
phase = 1
[../]
[]
[BCs]
[./leftwater]
type = DirichletBC
boundary = left
value = 3e6
variable = ppwater
[../]
[./rightwater]
type = DirichletBC
boundary = right
value = 2e6
variable = ppwater
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'bcgs bjacobi 1E-15 1E-20 10000'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
dt = 1e3
end_time = 1e4
[]
[VectorPostprocessors]
[./pp]
type = LineValueSampler
sort_by = x
variable = 'ppwater ppgas'
start_point = '0 0 0'
end_point = '100 0 0'
num_points = 11
[../]
[]
[Outputs]
file_base = pressure_pulse_1d_2phasePS
print_linear_residuals = false
[./csv]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/numerical_diffusion/pffltvd.i
# Using flux-limited TVD advection ala Kuzmin and Turek, employing PorousFlow Kernels and UserObjects, with superbee flux-limiter
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmin = 0
xmax = 1
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./porepressure]
[../]
[./tracer]
[../]
[]
[ICs]
[./porepressure]
type = FunctionIC
variable = porepressure
function = '1 - x'
[../]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = tracer
[../]
[./flux0]
type = PorousFlowFluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = advective_flux_calculator_0
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = porepressure
[../]
[./flux1]
type = PorousFlowFluxLimitedTVDAdvection
variable = porepressure
advective_flux_calculator = advective_flux_calculator_1
[../]
[]
[BCs]
[./constant_injection_porepressure]
type = PresetBC
variable = porepressure
value = 1
boundary = left
[../]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_component_1]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 1
use_mobility = true
flux_function = 1E3
[../]
[./remove_component_0]
type = PorousFlowPiecewiseLinearSink
variable = tracer
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 0
use_mobility = true
flux_function = 1E3
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E9
thermal_expansion = 0
viscosity = 1.0
density0 = 1000.0
[../]
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure tracer'
number_fluid_phases = 1
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
[../]
[./advective_flux_calculator_0]
type = PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent
flux_limiter_type = superbee
fluid_component = 0
[../]
[./advective_flux_calculator_1]
type = PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent
flux_limiter_type = superbee
fluid_component = 1
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = tracer
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = the_simple_fluid
phase = 0
[../]
[./relperm]
type = PorousFlowRelativePermeabilityConst
phase = 0
[../]
[./porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-2 0 0 0 1E-2 0 0 0 1E-2'
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 101
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
nl_abs_tol = 1E-8
timestep_tolerance = 1E-3
[]
[Outputs]
[./out]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/flux_limited_TVD_pflow/pffltvd_2D.i
# Using flux-limited TVD advection ala Kuzmin and Turek, employing PorousFlow Kernels and UserObjects, with superbee flux-limiter
# 3D version
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
xmin = 0
xmax = 1
ny = 4
ymin = 0
ymax = 0.5
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./porepressure]
[../]
[./tracer]
[../]
[]
[ICs]
[./porepressure]
type = FunctionIC
variable = porepressure
function = '1 - x'
[../]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = tracer
[../]
[./flux0]
type = PorousFlowFluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = advective_flux_calculator_0
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = porepressure
[../]
[./flux1]
type = PorousFlowFluxLimitedTVDAdvection
variable = porepressure
advective_flux_calculator = advective_flux_calculator_1
[../]
[]
[BCs]
[./constant_injection_porepressure]
type = PresetBC
variable = porepressure
value = 1
boundary = left
[../]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_component_1]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 1
use_mobility = true
flux_function = 1E3
[../]
[./remove_component_0]
type = PorousFlowPiecewiseLinearSink
variable = tracer
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 0
use_mobility = true
flux_function = 1E3
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E9
thermal_expansion = 0
viscosity = 1.0
density0 = 1000.0
[../]
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure tracer'
number_fluid_phases = 1
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
[../]
[./advective_flux_calculator_0]
type = PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent
flux_limiter_type = superbee
fluid_component = 0
[../]
[./advective_flux_calculator_1]
type = PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent
flux_limiter_type = superbee
fluid_component = 1
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = tracer
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = the_simple_fluid
phase = 0
[../]
[./relperm]
type = PorousFlowRelativePermeabilityConst
phase = 0
[../]
[./porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-2 0 0 0 1E-2 0 0 0 1E-2'
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0.5 0'
num_points = 11
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
nl_abs_tol = 1E-8
timestep_tolerance = 1E-3
[]
[Outputs]
[./out]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/newton_cooling/nc02.i
# Newton cooling from a bar. 1-phase steady
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1000
ny = 1
xmin = 0
xmax = 100
ymin = 0
ymax = 1
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'pressure'
number_fluid_phases = 1
number_fluid_components = 1
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
m = 0.8
alpha = 1e-5
[../]
[]
[Variables]
[./pressure]
[../]
[]
[ICs]
[./pressure]
type = FunctionIC
variable = pressure
function = '(2-x/100)*1E6'
[../]
[]
[Kernels]
[./flux]
type = PorousFlowAdvectiveFlux
fluid_component = 0
gravity = '0 0 0'
variable = pressure
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 1e6
density0 = 1000
thermal_expansion = 0
viscosity = 1e-3
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = pressure
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-15 0 0 0 1E-15 0 0 0 1E-15'
[../]
[./relperm]
type = PorousFlowRelativePermeabilityCorey # irrelevant in this fully-saturated situation
n = 2
phase = 0
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = pressure
boundary = left
value = 2E6
[../]
[./newton]
type = PorousFlowPiecewiseLinearSink
variable = pressure
boundary = right
pt_vals = '0 100000 200000 300000 400000 500000 600000 700000 800000 900000 1000000 1100000 1200000 1300000 1400000 1500000 1600000 1700000 1800000 1900000 2000000'
multipliers = '0. 5.6677197748570516e-6 0.000011931518841831313 0.00001885408740732065 0.000026504708864284114 0.000034959953203725676 0.000044304443352900224 0.00005463170211001232 0.00006604508815181467 0.00007865883048198513 0.00009259917167338928 0.00010800563134618119 0.00012503240252705603 0.00014384989486488752 0.00016464644014777016 0.00018763017719085535 0.0002130311349595711 0.00024110353477682344 0.00027212833465544285 0.00030641604122040985 0.00034430981736352295'
use_mobility = false
use_relperm = false
fluid_phase = 0
flux_function = 1
[../]
[]
[VectorPostprocessors]
[./porepressure]
type = LineValueSampler
variable = pressure
start_point = '0 0.5 0'
end_point = '100 0.5 0'
sort_by = x
num_points = 20
execute_on = timestep_end
[../]
[]
[Preconditioning]
active = 'andy'
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_max_it -sub_pc_factor_shift_type -pc_asm_overlap -snes_atol -snes_rtol '
petsc_options_value = 'gmres asm lu 100 NONZERO 2 1E-12 1E-15'
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
file_base = nc02
execute_on = timestep_end
exodus = false
[./along_line]
type = CSV
execute_vector_postprocessors_on = timestep_end
[../]
[]
modules/porous_flow/test/tests/newton_cooling/nc04.i
# Newton cooling from a bar. Heat conduction
[Mesh]
type = GeneratedMesh
dim = 2
nx = 100
ny = 1
xmin = 0
xmax = 100
ymin = 0
ymax = 1
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'temp'
number_fluid_phases = 0
number_fluid_components = 0
[../]
[]
[Variables]
[./temp]
[../]
[]
[ICs]
[./temp]
type = FunctionIC
variable = temp
function = '2-x/100'
[../]
[]
[Kernels]
[./conduction]
type = PorousFlowHeatConduction
variable = temp
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
temperature = temp
[../]
[./temperature_nodal]
type = PorousFlowTemperature
at_nodes = true
temperature = temp
[../]
[./thermal_conductivity_irrelevant]
type = PorousFlowThermalConductivityIdeal
dry_thermal_conductivity = '1E2 0 0 0 1E2 0 0 0 1E2'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = temp
boundary = left
value = 2
[../]
[./newton]
type = PorousFlowPiecewiseLinearSink
variable = temp
boundary = right
pt_vals = '0 1 2'
multipliers = '-1 0 1'
flux_function = 1
[../]
[]
[VectorPostprocessors]
[./temp]
type = LineValueSampler
variable = temp
start_point = '0 0.5 0'
end_point = '100 0.5 0'
sort_by = x
num_points = 11
execute_on = timestep_end
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_max_it -sub_pc_factor_shift_type -pc_asm_overlap -snes_atol -snes_rtol '
petsc_options_value = 'gmres asm lu 100 NONZERO 2 1E-14 1E-12'
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
file_base = nc04
execute_on = timestep_end
exodus = false
[./along_line]
type = CSV
execute_vector_postprocessors_on = timestep_end
[../]
[]
modules/combined/test/tests/beam_eigenstrain_transfer/subapp_err_2.i
# SubApp with 2D model to test multi app vectorpostprocessor to aux var transfer
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 5
xmin = 0.0
xmax = 0.5
ymin = 0.0
ymax = 0.150080
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./temp]
[../]
[./axial_strain]
order = FIRST
family = MONOMIAL
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t*(500.0)+300.0
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./all]
strain = SMALL
incremental = true
add_variables = true
eigenstrain_names = eigenstrain
[../]
[../]
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
[../]
[./axial_strain]
type = RankTwoAux
variable = axial_strain
rank_two_tensor = total_strain
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-9
start_time = 0.0
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
csv = true
exodus = true
[]
[VectorPostprocessors]
[./axial_str]
type = LineValueSampler
start_point = '0.5 0.0 0.0'
end_point = '0.5 0.150080 0.0'
variable = 'axial_strain axial_strain'
num_points = 21
sort_by = 'y'
[../]
[]
[Postprocessors]
[./end_disp]
type = PointValue
variable = disp_y
point = '0.5 0.150080 0.0'
[../]
[]
modules/porous_flow/test/tests/newton_cooling/nc08.i
# Newton cooling from a bar. 1-phase ideal fluid and heat, steady
[Mesh]
type = GeneratedMesh
dim = 2
nx = 100
ny = 1
xmin = 0
xmax = 100
ymin = 0
ymax = 1
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'pressure temp'
number_fluid_phases = 1
number_fluid_components = 1
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
m = 0.8
alpha = 1e-5
[../]
[]
[Variables]
[./pressure]
[../]
[./temp]
[../]
[]
[ICs]
# have to start these reasonably close to their steady-state values
[./pressure]
type = FunctionIC
variable = pressure
function = '200-0.5*x'
[../]
[./temperature]
type = FunctionIC
variable = temp
function = 180+0.1*x
[../]
[]
[Kernels]
[./flux]
type = PorousFlowAdvectiveFlux
fluid_component = 0
gravity = '0 0 0'
variable = pressure
[../]
[./heat_advection]
type = PorousFlowHeatAdvection
gravity = '0 0 0'
variable = temp
[../]
[]
[Modules]
[./FluidProperties]
[./idealgas]
type = IdealGasFluidPropertiesPT
molar_mass = 1.4
viscosity = 1.2
cv = 1.3
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
temperature = temp
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = pressure
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./dens0]
type = PorousFlowSingleComponentFluid
fp = idealgas
phase = 0
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1.1 0 0 0 1.1 0 0 0 1.1'
[../]
[./relperm]
type = PorousFlowRelativePermeabilityCorey # irrelevant in this fully-saturated situation
n = 2
phase = 0
[../]
[]
[BCs]
[./leftp]
type = DirichletBC
variable = pressure
boundary = left
value = 200
[../]
[./leftt]
type = DirichletBC
variable = temp
boundary = left
value = 180
[../]
[./newtonp]
type = PorousFlowPiecewiseLinearSink
variable = pressure
boundary = right
pt_vals = '-200 0 200'
multipliers = '-200 0 200'
use_mobility = true
use_relperm = true
fluid_phase = 0
flux_function = 0.005 # 1/2/L
[../]
[./newtont]
type = PorousFlowPiecewiseLinearSink
variable = temp
boundary = right
pt_vals = '-200 0 200'
multipliers = '-200 0 200'
use_mobility = true
use_relperm = true
use_enthalpy = true
fluid_phase = 0
flux_function = 0.005 # 1/2/L
[../]
[]
[VectorPostprocessors]
[./porepressure]
type = LineValueSampler
variable = pressure
start_point = '0 0.5 0'
end_point = '100 0.5 0'
sort_by = x
num_points = 11
execute_on = timestep_end
[../]
[./temperature]
type = LineValueSampler
variable = temp
start_point = '0 0.5 0'
end_point = '100 0.5 0'
sort_by = x
num_points = 11
execute_on = timestep_end
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_max_it -sub_pc_factor_shift_type -pc_asm_overlap -snes_atol -snes_rtol'
petsc_options_value = 'gmres asm lu 100 NONZERO 2 1E-15 1E-10'
[../]
[]
[Executioner]
type = Steady
solve_type = Newton
[]
[Outputs]
file_base = nc08
execute_on = timestep_end
exodus = true
[./along_line]
type = CSV
execute_vector_postprocessors_on = timestep_end
[../]
[]
modules/porous_flow/test/tests/broadbridge_white/rd03.i
[Mesh]
file = gold/rd02.e
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Functions]
[./dts]
type = PiecewiseLinear
y = '2E4 1E6'
x = '0 1E6'
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = pressure
number_fluid_phases = 1
number_fluid_components = 1
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
m = 0.336
alpha = 1.43e-4
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e7
viscosity = 1.01e-3
density0 = 1000
thermal_expansion = 0
[../]
[../]
[]
[Materials]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./temperature]
type = PorousFlowTemperature
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = pressure
capillary_pressure = pc
[../]
[./relperm]
type = PorousFlowRelativePermeabilityVG
m = 0.336
seff_turnover = 0.99
phase = 0
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.33
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '0.295E-12 0 0 0 0.295E-12 0 0 0 0.295E-12'
[../]
[]
[Variables]
[./pressure]
initial_from_file_timestep = 1
initial_from_file_var = pressure
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pressure
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pressure
gravity = '-10 0 0'
[../]
[]
[AuxVariables]
[./SWater]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./SWater]
type = MaterialStdVectorAux
property = PorousFlow_saturation_qp
index = 0
variable = SWater
[../]
[]
[BCs]
[./base]
type = DirichletBC
boundary = left
value = 0.0
variable = pressure
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason -ksp_diagonal_scale -ksp_diagonal_scale_fix -ksp_gmres_modifiedgramschmidt -snes_linesearch_monitor'
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu NONZERO 2 1E-10 1E-10 10'
[../]
[]
[VectorPostprocessors]
[./swater]
type = LineValueSampler
variable = SWater
start_point = '0 0 0'
end_point = '6 0 0'
sort_by = x
num_points = 121
execute_on = timestep_end
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_converged_reason'
end_time = 8.2944E6
[./TimeStepper]
type = FunctionDT
function = dts
[../]
[]
[Outputs]
file_base = rd03
[./exodus]
type = Exodus
execute_on = 'initial final'
[../]
[./along_line]
type = CSV
execute_on = final
[../]
[]
test/tests/outputs/hide_vector_pp/hide_vector_pp.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[Postprocessors]
[./pp]
type = NumElems
outputs = csv
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = u
start_point = '0 0 0'
end_point = '1 1 0'
num_points = 10
sort_by = id
outputs = 'test'
[../]
[]
[Executioner]
type = Transient
num_steps = 20
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
csv = true
[./test]
type = CSV
execute_on = 'FINAL'
[../]
[]
modules/porous_flow/test/tests/broadbridge_white/wli01.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1000
ny = 1
xmin = -10000
xmax = 0
ymin = 0
ymax = 0.05
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = pressure
number_fluid_phases = 1
number_fluid_components = 1
[../]
[./pc]
type = PorousFlowCapillaryPressureBW
Sn = 0.0
Ss = 1.0
C = 1.5
las = 2
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e9
viscosity = 4
density0 = 10
thermal_expansion = 0
[../]
[../]
[]
[Materials]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./temperature]
type = PorousFlowTemperature
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = pressure
capillary_pressure = pc
[../]
[./relperm]
type = PorousFlowRelativePermeabilityBW
Sn = 0.0
Ss = 1.0
Kn = 0
Ks = 1
C = 1.5
phase = 0
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.25
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1 0 0 0 1 0 0 0 1'
[../]
[]
[Variables]
[./pressure]
initial_condition = -1E-4
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pressure
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pressure
gravity = '-0.1 0 0'
[../]
[]
[AuxVariables]
[./SWater]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./SWater]
type = MaterialStdVectorAux
property = PorousFlow_saturation_qp
index = 0
variable = SWater
[../]
[]
[BCs]
[./base]
type = DirichletBC
boundary = 'left'
value = -1E-4
variable = pressure
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason -ksp_diagonal_scale -ksp_diagonal_scale_fix -ksp_gmres_modifiedgramschmidt -snes_linesearch_monitor'
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu NONZERO 2 1E-10 1E-10 10000'
[../]
[]
[VectorPostprocessors]
[./swater]
type = LineValueSampler
variable = SWater
start_point = '-5000 0 0'
end_point = '0 0 0'
sort_by = x
num_points = 71
execute_on = timestep_end
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_converged_reason'
end_time = 1000
dt = 1
[]
[Outputs]
file_base = wli01
sync_times = '100 500 1000'
[./exodus]
type = Exodus
sync_only = true
[../]
[./along_line]
type = CSV
sync_only = true
[../]
[]
modules/porous_flow/test/tests/relperm/brooks_corey1.i
# Test Brooks-Corey relative permeability curve by varying saturation over the mesh
# Exponent lambda = 2 for both phases
[Mesh]
type = GeneratedMesh
dim = 1
nx = 20
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./p0]
initial_condition = 1e6
[../]
[./s1]
[../]
[]
[AuxVariables]
[./s0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./s1aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr1aux]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./s0]
type = PorousFlowPropertyAux
property = saturation
phase = 0
variable = s0aux
[../]
[./s1]
type = PorousFlowPropertyAux
property = saturation
phase = 1
variable = s1aux
[../]
[./kr0]
type = PorousFlowPropertyAux
property = relperm
phase = 0
variable = kr0aux
[../]
[./kr1]
type = PorousFlowPropertyAux
property = relperm
phase = 1
variable = kr1aux
[../]
[]
[Functions]
[./s1]
type = ParsedFunction
value = x
[../]
[]
[ICs]
[./s1]
type = FunctionIC
variable = s1
function = s1
[../]
[]
[Kernels]
[./p0]
type = Diffusion
variable = p0
[../]
[./s1]
type = Diffusion
variable = s1
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'p0 s1'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
pc = 0
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = p0
phase1_saturation = s1
capillary_pressure = pc
[../]
[./kr0]
type = PorousFlowRelativePermeabilityBC
phase = 0
lambda = 2
[../]
[./kr1]
type = PorousFlowRelativePermeabilityBC
phase = 1
lambda = 2
nw_phase = true
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = 's0aux s1aux kr0aux kr1aux'
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 20
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-8
[]
[BCs]
[./sleft]
type = DirichletBC
variable = s1
value = 0
boundary = left
[../]
[./sright]
type = DirichletBC
variable = s1
value = 1
boundary = right
[../]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
test/tests/auxkernels/diffusion_flux/diffusion_flux.i
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 2 # Dimension of the mesh
nx = 10 # Number of elements in the x direction
ny = 10 # Number of elements in the y direction
xmax = 1.0
ymax = 1.0
[]
[Variables]
[./T]
[../]
[]
[AuxVariables]
[./flux_x]
order = FIRST
family = MONOMIAL
[../]
[./flux_y]
order = FIRST
family = MONOMIAL
[../]
[]
[Kernels]
[./diff]
type = MatDiffusionTest # A Laplacian operator
variable = T
prop_name = 'thermal_conductivity'
[../]
[]
[AuxKernels]
[./flux_x]
type = DiffusionFluxAux
diffusivity = 'thermal_conductivity'
variable = flux_x
diffusion_variable = T
component = x
[../]
[./flux_y]
type = DiffusionFluxAux
diffusivity = 'thermal_conductivity'
variable = flux_y
diffusion_variable = T
component = y
[../]
[]
[BCs]
[./inlet]
type = DirichletBC # Simple u=value BC
variable = T
boundary = left
value = 4000 # K
[../]
[./outlet]
type = DirichletBC
variable = T
boundary = right
value = 400 # K
[../]
[]
[Materials]
[./k]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity'
prop_values = '10' # in W/mK
[../]
[]
[VectorPostprocessors]
[./line_sample]
type = LineValueSampler
variable = 'T flux_x flux_y'
start_point = '0 0. 0'
end_point = '1.0 0. 0'
num_points = 11
sort_by = id
[../]
[]
[Executioner]
type = Steady # Steady state problem
solve_type = PJFNK #Preconditioned Jacobian Free Newton Krylov
nl_rel_tol = 1e-12
petsc_options_iname = '-pc_type -pc_hypre_type' #Matches with the values below
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true # Output Exodus format
execute_on = 'initial timestep_end'
csv = true
[]
modules/porous_flow/test/tests/flux_limited_TVD_pflow/pffltvd_3D.i
# Using flux-limited TVD advection ala Kuzmin and Turek, employing PorousFlow Kernels and UserObjects, with superbee flux-limiter
# 3D version
[Mesh]
type = GeneratedMesh
dim = 3
nx = 10
xmin = 0
xmax = 1
ny = 4
ymin = 0
ymax = 0.5
nz = 3
zmin = 0
zmax = 2
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./porepressure]
[../]
[./tracer]
[../]
[]
[ICs]
[./porepressure]
type = FunctionIC
variable = porepressure
function = '1 - x'
[../]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = tracer
[../]
[./flux0]
type = PorousFlowFluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = advective_flux_calculator_0
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = porepressure
[../]
[./flux1]
type = PorousFlowFluxLimitedTVDAdvection
variable = porepressure
advective_flux_calculator = advective_flux_calculator_1
[../]
[]
[BCs]
[./constant_injection_porepressure]
type = PresetBC
variable = porepressure
value = 1
boundary = left
[../]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_component_1]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 1
use_mobility = true
flux_function = 1E3
[../]
[./remove_component_0]
type = PorousFlowPiecewiseLinearSink
variable = tracer
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 0
use_mobility = true
flux_function = 1E3
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E9
thermal_expansion = 0
viscosity = 1.0
density0 = 1000.0
[../]
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure tracer'
number_fluid_phases = 1
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
[../]
[./advective_flux_calculator_0]
type = PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent
flux_limiter_type = superbee
fluid_component = 0
[../]
[./advective_flux_calculator_1]
type = PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent
flux_limiter_type = superbee
fluid_component = 1
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = tracer
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = the_simple_fluid
phase = 0
[../]
[./relperm]
type = PorousFlowRelativePermeabilityConst
phase = 0
[../]
[./porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-2 0 0 0 1E-2 0 0 0 1E-2'
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0.5 2'
num_points = 11
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 0.3
dt = 6E-2
nl_abs_tol = 1E-8
timestep_tolerance = 1E-3
[]
[Outputs]
csv = true
print_linear_residuals = false
execute_on = final
[]
python/peacock/tests/input_tab/InputTree/gold/simple_diffusion_vp.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = 'left'
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = 'right'
value = 1
[]
[]
[Executioner]
# Preconditioned JFNK (default)
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
[VectorPostprocessors]
[foo]
type = LineValueSampler
num_points = 10
end_point = '1 0 0'
start_point = '0 0 0'
[]
[]
modules/porous_flow/test/tests/flux_limited_TVD_pflow/pffltvd_1D_adaptivity.i
# Using flux-limited TVD advection ala Kuzmin and Turek, mploying PorousFlow Kernels and UserObjects, with superbee flux-limiter
# 1D version with adaptivity
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0
xmax = 1
[]
[Adaptivity]
initial_steps = 1
initial_marker = tracer_marker
marker = tracer_marker
max_h_level = 1
[./Markers]
[./tracer_marker]
type = ValueRangeMarker
variable = tracer
lower_bound = 0.02
upper_bound = 0.98
[../]
[../]
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./porepressure]
[../]
[./tracer]
[../]
[]
[ICs]
[./porepressure]
type = FunctionIC
variable = porepressure
function = '1 - x'
[../]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = tracer
[../]
[./flux0]
type = PorousFlowFluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = advective_flux_calculator_0
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = porepressure
[../]
[./flux1]
type = PorousFlowFluxLimitedTVDAdvection
variable = porepressure
advective_flux_calculator = advective_flux_calculator_1
[../]
[]
[BCs]
[./constant_injection_porepressure]
type = PresetBC
variable = porepressure
value = 1
boundary = left
[../]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_component_1]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 1
use_mobility = true
flux_function = 1E3
[../]
[./remove_component_0]
type = PorousFlowPiecewiseLinearSink
variable = tracer
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 0
use_mobility = true
flux_function = 1E3
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E9
thermal_expansion = 0
viscosity = 1.0
density0 = 1000.0
[../]
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure tracer'
number_fluid_phases = 1
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
[../]
[./advective_flux_calculator_0]
type = PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent
flux_limiter_type = superbee
fluid_component = 0
[../]
[./advective_flux_calculator_1]
type = PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent
flux_limiter_type = superbee
fluid_component = 1
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = tracer
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = the_simple_fluid
phase = 0
[../]
[./relperm]
type = PorousFlowRelativePermeabilityConst
phase = 0
[../]
[./porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-2 0 0 0 1E-2 0 0 0 1E-2'
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 11
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
nl_abs_tol = 1E-8
timestep_tolerance = 1E-3
[]
[Outputs]
[./out]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/rogers_stallybrass_clements/rsc02.i
# RSC test with low-res time and spatial resolution
[Mesh]
type = GeneratedMesh
dim = 2
nx = 200
ny = 1
xmin = 0
xmax = 10 # x is the depth variable, called zeta in RSC
ymin = 0
ymax = 0.05
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Functions]
[./dts]
type = PiecewiseLinear
y = '3E-2 5E-1 8E-1'
x = '0 1 5'
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'pwater poil'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureRSC
oil_viscosity = 2E-3
scale_ratio = 2E3
shift = 10
[../]
[]
[Modules]
[./FluidProperties]
[./water]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 10
thermal_expansion = 0
viscosity = 1e-3
[../]
[./oil]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 20
thermal_expansion = 0
viscosity = 2e-3
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePP
phase0_porepressure = pwater
phase1_porepressure = poil
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = 'massfrac_ph0_sp0 massfrac_ph1_sp0'
[../]
[./water]
type = PorousFlowSingleComponentFluid
fp = water
phase = 0
compute_enthalpy = false
compute_internal_energy = false
[../]
[./oil]
type = PorousFlowSingleComponentFluid
fp = oil
phase = 1
compute_enthalpy = false
compute_internal_energy = false
[../]
[./relperm_water]
type = PorousFlowRelativePermeabilityCorey
n = 1
phase = 0
[../]
[./relperm_oil]
type = PorousFlowRelativePermeabilityCorey
n = 1
phase = 1
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.25
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-5 0 0 0 1E-5 0 0 0 1E-5'
[../]
[]
[Variables]
[./pwater]
[../]
[./poil]
[../]
[]
[ICs]
[./water_init]
type = ConstantIC
variable = pwater
value = 0
[../]
[./oil_init]
type = ConstantIC
variable = poil
value = 15
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pwater
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pwater
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = poil
[../]
[./flux1]
type = PorousFlowAdvectiveFlux
fluid_component = 1
variable = poil
[../]
[]
[AuxVariables]
[./SWater]
family = MONOMIAL
order = CONSTANT
[../]
[./SOil]
family = MONOMIAL
order = CONSTANT
[../]
[./massfrac_ph0_sp0]
initial_condition = 1
[../]
[./massfrac_ph1_sp0]
initial_condition = 0
[../]
[]
[AuxKernels]
[./SWater]
type = MaterialStdVectorAux
property = PorousFlow_saturation_qp
index = 0
variable = SWater
[../]
[./SOil]
type = MaterialStdVectorAux
property = PorousFlow_saturation_qp
index = 1
variable = SOil
[../]
[]
[BCs]
# we are pumping water into a system that has virtually incompressible fluids, hence the pressures rise enormously. this adversely affects convergence because of almost-overflows and precision-loss problems. The fixed things help keep pressures low and so prevent these awful behaviours. the movement of the saturation front is the same regardless of the fixed things.
active = 'recharge fixedoil fixedwater'
[./recharge]
type = PorousFlowSink
variable = pwater
boundary = 'left'
flux_function = -1.0
[../]
[./fixedwater]
type = PresetBC
variable = pwater
boundary = 'right'
value = 0
[../]
[./fixedoil]
type = PresetBC
variable = poil
boundary = 'right'
value = 15
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason -ksp_diagonal_scale -ksp_diagonal_scale_fix -ksp_gmres_modifiedgramschmidt -snes_linesearch_monitor'
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu NONZERO 2 1E-10 1E-10 10000'
[../]
[]
[VectorPostprocessors]
[./swater]
type = LineValueSampler
variable = SWater
start_point = '0 0 0'
end_point = '7 0 0'
sort_by = x
num_points = 21
execute_on = timestep_end
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_converged_reason'
end_time = 5
[./TimeStepper]
type = FunctionDT
function = dts
[../]
[]
[Outputs]
file_base = rsc02
[./along_line]
type = CSV
execute_vector_postprocessors_on = final
[../]
[./exodus]
type = Exodus
execute_on = 'initial final'
[../]
[]
modules/porous_flow/test/tests/numerical_diffusion/pffltvd_action.i
# Using flux-limited TVD advection ala Kuzmin and Turek, employing PorousFlow Kernels and UserObjects, with superbee flux-limiter
# Using the PorousFlowFullySaturated Action
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmin = 0
xmax = 1
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./porepressure]
[../]
[./tracer]
[../]
[]
[ICs]
[./porepressure]
type = FunctionIC
variable = porepressure
function = '1 - x'
[../]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[PorousFlowFullySaturated]
porepressure = porepressure
coupling_type = Hydro
fp = the_simple_fluid
mass_fraction_vars = tracer
stabilization = KT
flux_limiter_type = superbee
[]
[BCs]
[./constant_injection_porepressure]
type = PresetBC
variable = porepressure
value = 1
boundary = left
[../]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_component_1]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 1
use_mobility = true
flux_function = 1E3
[../]
[./remove_component_0]
type = PorousFlowPiecewiseLinearSink
variable = tracer
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 0
use_mobility = true
flux_function = 1E3
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E9
thermal_expansion = 0
viscosity = 1.0
density0 = 1000.0
[../]
[../]
[]
[Materials]
[./porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-2 0 0 0 1E-2 0 0 0 1E-2'
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 101
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
nl_abs_tol = 1E-8
timestep_tolerance = 1E-3
[]
[Outputs]
file_base = pffltvd_out
[./out]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/relperm/vangenuchten2.i
# Test van Genuchten relative permeability curve by varying saturation over the mesh
# van Genuchten exponent m = 0.5 for both phases
# Phase 0 residual saturation s0r = 0.2
# Phase 1 residual saturation s1r = 0.3
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./p0]
initial_condition = 1e6
[../]
[./s1]
[../]
[]
[AuxVariables]
[./s0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./s1aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./kr1aux]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./s0]
type = PorousFlowPropertyAux
property = saturation
phase = 0
variable = s0aux
[../]
[./s1]
type = PorousFlowPropertyAux
property = saturation
phase = 1
variable = s1aux
[../]
[./kr0]
type = PorousFlowPropertyAux
property = relperm
phase = 0
variable = kr0aux
[../]
[./kr1]
type = PorousFlowPropertyAux
property = relperm
phase = 1
variable = kr1aux
[../]
[]
[Functions]
[./s1]
type = ParsedFunction
value = x
[../]
[]
[ICs]
[./s1]
type = FunctionIC
variable = s1
function = s1
[../]
[]
[Kernels]
[./p0]
type = Diffusion
variable = p0
[../]
[./s1]
type = Diffusion
variable = s1
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'p0 s1'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
pc = 0
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = p0
phase1_saturation = s1
capillary_pressure = pc
[../]
[./kr0]
type = PorousFlowRelativePermeabilityVG
phase = 0
m = 0.5
s_res = 0.2
sum_s_res = 0.5
[../]
[./kr1]
type = PorousFlowRelativePermeabilityVG
phase = 1
m = 0.5
s_res = 0.3
sum_s_res = 0.5
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = 's0aux s1aux kr0aux kr1aux'
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 20
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-7
[]
[BCs]
[./sleft]
type = DirichletBC
variable = s1
value = 0
boundary = left
[../]
[./sright]
type = DirichletBC
variable = s1
value = 1
boundary = right
[../]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
modules/porous_flow/test/tests/capillary_pressure/vangenuchten3.i
# Test van Genuchten relative permeability curve by varying saturation over the mesh
# van Genuchten exponent m = 0.5 for both phases
# No residual saturation in either phase
[Mesh]
type = GeneratedMesh
dim = 1
nx = 500
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./p0]
initial_condition = 1e6
[../]
[./s1]
[../]
[]
[AuxVariables]
[./s0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./s1aux]
family = MONOMIAL
order = CONSTANT
[../]
[./p0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./p1aux]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./s0]
type = PorousFlowPropertyAux
property = saturation
phase = 0
variable = s0aux
[../]
[./s1]
type = PorousFlowPropertyAux
property = saturation
phase = 1
variable = s1aux
[../]
[./p0]
type = PorousFlowPropertyAux
property = pressure
phase = 0
variable = p0aux
[../]
[./p1]
type = PorousFlowPropertyAux
property = pressure
phase = 1
variable = p1aux
[../]
[]
[Functions]
[./s1]
type = ParsedFunction
value = x
[../]
[]
[ICs]
[./s1]
type = FunctionIC
variable = s1
function = s1
[../]
[]
[Kernels]
[./p0]
type = Diffusion
variable = p0
[../]
[./s1]
type = Diffusion
variable = s1
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'p0 s1'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
alpha = 1e-5
m = 0.5
sat_lr = 0.1
s_scale = 0.8
log_extension = false
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = p0
phase1_saturation = s1
capillary_pressure = pc
[../]
[./kr0]
type = PorousFlowRelativePermeabilityVG
phase = 0
m = 0.5
[../]
[./kr1]
type = PorousFlowRelativePermeabilityCorey
phase = 1
n = 2
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = 's0aux s1aux p0aux p1aux'
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 500
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-6
[]
[BCs]
[./sleft]
type = DirichletBC
variable = s1
value = 0
boundary = left
[../]
[./sright]
type = DirichletBC
variable = s1
value = 1
boundary = right
[../]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
modules/tensor_mechanics/test/tests/eigenstrain/reducedOrderRZQuadratic.i
#
# This test checks whether the ComputeReducedOrderEigenstrain is functioning properly.
#
# If instead of 'reduced_order_eigenstrain', 'thermal_eigenstrain' is given to
# eigenstrain_names in the Modules/TensorMechanics/Master/all block, the output will be
# quite different.
#
# Open the reducedOrderRZQuadratic_out_hydro_0001.csv file and plot the hydro variables as
# a function of x.
#
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 1
xmax = 3
xmin = 1
ymax = 1
ymin = 0
second_order = true
[]
[Functions]
[./tempLinear]
type = ParsedFunction
value = '715-5*x'
[../]
[./tempQuadratic]
type = ParsedFunction
vars = 'Tc Te'
vals = '701 700'
value = '(Te-Tc)/4.0*x*x+(Tc-Te)/2.0*x+Te+3.0*(Tc-Te)/4.0'
[../]
[./tempCubic]
type = ParsedFunction
value = '-1.25*x*x*x+11.25*x*x-33.75*x+733.75'
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 295.0
[../]
[]
[AuxVariables]
[./hydro_constant]
order = CONSTANT
family = MONOMIAL
[../]
[./hydro_first]
order = FIRST
family = MONOMIAL
[../]
[./hydro_second]
order = SECOND
family = MONOMIAL
[../]
[./sxx_constant]
order = CONSTANT
family = MONOMIAL
[../]
[./sxx_first]
order = FIRST
family = MONOMIAL
[../]
[./sxx_second]
order = SECOND
family = MONOMIAL
[../]
[./szz_constant]
order = CONSTANT
family = MONOMIAL
[../]
[./szz_first]
order = FIRST
family = MONOMIAL
[../]
[./szz_second]
order = SECOND
family = MONOMIAL
[../]
[./thermal_constant]
order = CONSTANT
family = MONOMIAL
[../]
[./thermal_first]
order = FIRST
family = MONOMIAL
[../]
[./thermal_second]
order = SECOND
family = MONOMIAL
[../]
[./reduced_constant]
order = CONSTANT
family = MONOMIAL
[../]
[./reduced_first]
order = FIRST
family = MONOMIAL
[../]
[./reduced_second]
order = SECOND
family = MONOMIAL
[../]
[./temp2]
order = SECOND
family = LAGRANGE
initial_condition = 700
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./all]
add_variables = true
strain = SMALL
incremental = true
temperature = temp2
#eigenstrain_names = thermal_eigenstrain
eigenstrain_names = reduced_order_eigenstrain
[../]
[../]
[../]
[]
[Kernels]
[./heat]
type = Diffusion
variable = temp
[../]
[]
[AuxKernels]
[./hydro_constant_aux]
type = RankTwoScalarAux
variable = hydro_constant
rank_two_tensor = stress
scalar_type = Hydrostatic
execute_on = timestep_end
[../]
[./hydro_first_aux]
type = RankTwoScalarAux
variable = hydro_first
rank_two_tensor = stress
scalar_type = Hydrostatic
execute_on = timestep_end
[../]
[./hydro_second_aux]
type = RankTwoScalarAux
variable = hydro_second
rank_two_tensor = stress
scalar_type = Hydrostatic
execute_on = timestep_end
[../]
[./sxx_constant_aux]
type = RankTwoAux
variable = sxx_constant
rank_two_tensor = stress
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./sxx_first_aux]
type = RankTwoAux
variable = sxx_first
rank_two_tensor = stress
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./sxx_second_aux]
type = RankTwoAux
variable = sxx_second
rank_two_tensor = stress
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./szz_constant_aux]
type = RankTwoAux
variable = szz_constant
rank_two_tensor = stress
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./szz_first_aux]
type = RankTwoAux
variable = szz_first
rank_two_tensor = stress
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./szz_second_aux]
type = RankTwoAux
variable = szz_second
rank_two_tensor = stress
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./thermal_constant_aux]
type = RankTwoAux
variable = thermal_constant
rank_two_tensor = thermal_eigenstrain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./thermal_first_aux]
type = RankTwoAux
variable = thermal_first
rank_two_tensor = thermal_eigenstrain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./thermal_second_aux]
type = RankTwoAux
variable = thermal_second
rank_two_tensor = thermal_eigenstrain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./reduced_constant_aux]
type = RankTwoAux
variable = reduced_constant
rank_two_tensor = reduced_order_eigenstrain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./reduced_first_aux]
type = RankTwoAux
variable = reduced_first
rank_two_tensor = reduced_order_eigenstrain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./reduced_second_aux]
type = RankTwoAux
variable = reduced_second
rank_two_tensor = reduced_order_eigenstrain
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./temp2]
type = FunctionAux
variable = temp2
function = tempQuadratic
execute_on = timestep_begin
[../]
[]
[BCs]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = bottom #'bottom top'
value = 0.0
[../]
[./temp_right]
type = DirichletBC
variable = temp
boundary = right
value = 700
[../]
[./temp_left]
type = DirichletBC
variable = temp
boundary = left
value = 710
[../]
[]
[Materials]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e8
poissons_ratio = 0
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-6
temperature = temp2
stress_free_temperature = 295.0
eigenstrain_name = 'thermal_eigenstrain'
[../]
[./reduced_order_eigenstrain]
type = ComputeReducedOrderEigenstrain
input_eigenstrain_names = 'thermal_eigenstrain'
eigenstrain_name = 'reduced_order_eigenstrain'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
num_steps = 1
nl_rel_tol = 1e-8
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[]
[VectorPostprocessors]
[./hydro]
type = LineValueSampler
num_points = 50
start_point = '1 0.07e-3 0'
end_point = '3 0.07e-3 0'
sort_by = x
variable = 'temp2 disp_x disp_y hydro_constant hydro_first hydro_second sxx_constant sxx_first sxx_second szz_constant szz_first szz_second thermal_constant thermal_first thermal_second reduced_constant reduced_first reduced_second'
[../]
[]
[Outputs]
exodus = true
csv = true
[]
modules/porous_flow/test/tests/numerical_diffusion/fully_saturated_action.i
# Using the fully-saturated action, which does mass lumping but no upwinding
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmin = 0
xmax = 1
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./porepressure]
[../]
[./tracer]
[../]
[]
[ICs]
[./porepressure]
type = FunctionIC
variable = porepressure
function = '1 - x'
[../]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[PorousFlowFullySaturated]
porepressure = porepressure
coupling_type = Hydro
gravity = '0 0 0'
fp = the_simple_fluid
mass_fraction_vars = tracer
[]
[BCs]
[./constant_injection_porepressure]
type = PresetBC
variable = porepressure
value = 1
boundary = left
[../]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_component_1]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 1
use_mobility = true
flux_function = 1E3
[../]
[./remove_component_0]
type = PorousFlowPiecewiseLinearSink
variable = tracer
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 0
use_mobility = true
flux_function = 1E3
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E9
viscosity = 1.0
density0 = 1000.0
[../]
[../]
[]
[Materials]
[./porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-2 0 0 0 1E-2 0 0 0 1E-2'
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 101
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-1
nl_abs_tol = 1E-8
timestep_tolerance = 1E-3
[]
[Outputs]
[./out]
type = CSV
execute_on = final
[../]
[]
modules/combined/test/tests/beam_eigenstrain_transfer/subapp_err_4.i
# SubApp with 2D model to test multi app vectorpostprocessor to aux var transfer
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 5
xmin = 0.0
xmax = 0.5
ymin = 0.0
ymax = 0.150080
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./temp]
[../]
[./axial_strain]
order = FIRST
family = MONOMIAL
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t*(500.0)+300.0
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./all]
strain = SMALL
incremental = true
add_variables = true
eigenstrain_names = eigenstrain
[../]
[../]
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
[../]
[./axial_strain]
type = RankTwoAux
variable = axial_strain
rank_two_tensor = total_strain
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-9
start_time = 0.0
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
csv = true
exodus = true
[]
[VectorPostprocessors]
[./axial_str]
type = LineValueSampler
start_point = '0.5 0.0 0.0'
end_point = '0.5 0.1 0.0'
variable = axial_strain
num_points = 21
sort_by = 'id'
[../]
[]
[Postprocessors]
[./end_disp]
type = PointValue
variable = disp_y
point = '0.5 0.150080 0.0'
[../]
[]
modules/tensor_mechanics/test/tests/static_deformations/cosserat_glide_fake_plastic.i
# Example taken from Appendix A of
# S Forest "Mechanics of Cosserat media An introduction". Available from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.154.4476&rep=rep1&type=pdf
#
# This example uses plasticity, but with inifinitely large yield strength, so it is really elasticity
#
# Analytically, the displacements are
# wc_z = B sinh(w_e y)
# disp_x = (2 mu_c B / w_e / (mu + mu_c)) (1 - cosh(w_e y))
# with w_e^2 = 2 mu mu_c / be / (mu + mu_c)
# and B = arbitrary integration constant
#
# Also, the only nonzero stresses are
# m_zy = 2 B be w_e cosh(w_e y)
# si_yx = -4 mu mu_c/(mu + mu_c) B sinh(w_e y)
#
# MOOSE gives these stress components correctly.
# However, it also gives a seemingly non-zero si_xy
# component. Upon increasing the resolution of the
# mesh (ny=10000, for example), the stress components
# are seen to limit correctly to the above forumlae
#
# I use mu = 2, mu_c = 3, be = 0.6, so w_e = 2
# Also i use B = 1, so at y = 1
# wc_z = 3.626860407847
# disp_x = -1.65731741465
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 100
ymax = 1
nz = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[./wc_z]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./z_couple]
type = StressDivergenceTensors
variable = wc_z
displacements = 'wc_x wc_y wc_z'
component = 2
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[./z_moment]
type = MomentBalancing
variable = wc_z
component = 2
[../]
[]
[BCs]
# zmin is called back
# zmax is called front
# ymin is called bottom
# ymax is called top
# xmin is called left
# xmax is called right
[./disp_x_zero_at_y_zero]
type = PresetBC
variable = disp_x
boundary = bottom
value = 0
[../]
[./disp_x_fixed_at_y_max]
type = PresetBC
variable = disp_x
boundary = top
value = -1.65731741465
[../]
[./no_dispy]
type = PresetBC
variable = disp_y
boundary = 'back front bottom top left right'
value = 0
[../]
[./no_dispz]
type = PresetBC
variable = disp_z
boundary = 'back front bottom top left right'
value = 0
[../]
[./no_wc_x]
type = PresetBC
variable = wc_x
boundary = 'back front bottom top left right'
value = 0
[../]
[./no_wc_y]
type = PresetBC
variable = wc_y
boundary = 'back front bottom top left right'
value = 0
[../]
[./wc_z_zero_at_y_zero]
type = PresetBC
variable = wc_z
boundary = bottom
value = 0
[../]
[./wc_z_fixed_at_y_max]
type = PresetBC
variable = wc_z
boundary = top
value = 3.626860407847
[../]
[]
[AuxVariables]
[./stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./couple_stress_xx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xx
index_i = 0
index_j = 0
[../]
[./couple_stress_xy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xy
index_i = 0
index_j = 1
[../]
[./couple_stress_xz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xz
index_i = 0
index_j = 2
[../]
[./couple_stress_yx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yx
index_i = 1
index_j = 0
[../]
[./couple_stress_yy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yy
index_i = 1
index_j = 1
[../]
[./couple_stress_yz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yz
index_i = 1
index_j = 2
[../]
[./couple_stress_zx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zx
index_i = 2
index_j = 0
[../]
[./couple_stress_zy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zy
index_i = 2
index_j = 1
[../]
[./couple_stress_zz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zz
index_i = 2
index_j = 2
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeCosseratElasticityTensor
B_ijkl = '1.1 0.6 0.6' # In Forest notation this is alpha=1.1 (this is unimportant), beta=gamma=0.6.
fill_method_bending = 'general_isotropic'
E_ijkl = '1 2 3' # In Forest notation this is lambda=1 (this is unimportant), mu=2, mu_c=3
fill_method = 'general_isotropic'
[../]
[./strain]
type = ComputeCosseratIncrementalSmallStrain
[../]
[./stress_fake_plasticity]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1E-12
[../]
[]
[VectorPostprocessors]
[./soln]
type = LineValueSampler
sort_by = y
variable = 'disp_x wc_z stress_yx couple_stress_zy'
start_point = '0 0 0'
end_point = '0 1 0'
num_points = 11
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol'
petsc_options_value = 'gmres asm lu 1E-10 1E-14 10 1E-15 1E-10'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
num_steps = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = cosserat_glide_fake_plastic_out
exodus = false
csv = true
[]
modules/combined/test/tests/beam_eigenstrain_transfer/subapp2_uo_transfer.i
# This test involves only thermal expansion strains on a 2x2x2 cube of approximate
# steel material. An initial temperature of 25 degrees C is given for the material,
# and an auxkernel is used to calculate the temperature in the entire cube to
# raise the temperature each time step. After the first timestep,in which the
# temperature jumps, the temperature increases by 6.25C each timestep.
# The thermal strain increment should therefore be
# 6.25 C * 1.3e-5 1/C = 8.125e-5 m/m.
# This test is also designed to be used to identify problems with restart files
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 5
xmin = 0.0
xmax = 0.5
ymin = 0.0
ymax = 0.150080
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./temp]
[../]
[./axial_strain]
order = FIRST
family = MONOMIAL
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t*(1000.0)+300.0
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./all]
strain = SMALL
incremental = true
add_variables = true
eigenstrain_names = eigenstrain
[../]
[../]
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
[../]
[./axial_strain]
type = RankTwoAux
variable = axial_strain
rank_two_tensor = total_strain
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
csv = true
exodus = true
[]
[VectorPostprocessors]
[./axial_str]
type = LineValueSampler
start_point = '0.5 0.0 0.0'
end_point = '0.5 0.150080 0.0'
variable = axial_strain
num_points = 11
sort_by = 'id'
[../]
[]
[Postprocessors]
[./end_disp]
type = PointValue
variable = disp_y
point = '0.5 0.150080 0.0'
[../]
[]
modules/porous_flow/test/tests/capillary_pressure/brooks_corey1.i
# Test Brooks-Corey capillary pressure curve by varying saturation over the mesh
# lambda = 2, sat_lr = 0.1, log_extension = false
[Mesh]
type = GeneratedMesh
dim = 1
nx = 500
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./p0]
initial_condition = 1e6
[../]
[./s1]
[../]
[]
[AuxVariables]
[./s0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./s1aux]
family = MONOMIAL
order = CONSTANT
[../]
[./p0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./p1aux]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./s0]
type = PorousFlowPropertyAux
property = saturation
phase = 0
variable = s0aux
[../]
[./s1]
type = PorousFlowPropertyAux
property = saturation
phase = 1
variable = s1aux
[../]
[./p0]
type = PorousFlowPropertyAux
property = pressure
phase = 0
variable = p0aux
[../]
[./p1]
type = PorousFlowPropertyAux
property = pressure
phase = 1
variable = p1aux
[../]
[]
[Functions]
[./s1]
type = ParsedFunction
value = x
[../]
[]
[ICs]
[./s1]
type = FunctionIC
variable = s1
function = s1
[../]
[]
[Kernels]
[./p0]
type = Diffusion
variable = p0
[../]
[./s1]
type = Diffusion
variable = s1
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'p0 s1'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureBC
lambda = 2
log_extension = false
pe = 1e5
sat_lr = 0.1
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = p0
phase1_saturation = s1
capillary_pressure = pc
[../]
[./kr0]
type = PorousFlowRelativePermeabilityVG
phase = 0
m = 0.5
[../]
[./kr1]
type = PorousFlowRelativePermeabilityCorey
phase = 1
n = 2
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = 's0aux s1aux p0aux p1aux'
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 500
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-6
[]
[BCs]
[./sleft]
type = DirichletBC
variable = s1
value = 0
boundary = left
[../]
[./sright]
type = DirichletBC
variable = s1
value = 1
boundary = right
[../]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
modules/porous_flow/test/tests/numerical_diffusion/framework.i
# Using framework objects: no mass lumping or upwinding
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmin = 0
xmax = 1
[]
[Variables]
[./tracer]
[../]
[]
[ICs]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[Kernels]
[./mass_dot]
type = TimeDerivative
variable = tracer
[../]
[./flux]
type = ConservativeAdvection
velocity = '0.1 0 0'
variable = tracer
[../]
[]
[BCs]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_tracer]
# Ideally, an OutflowBC would be used, but that does not exist in the framework
# In 1D VacuumBC is the same as OutflowBC, with the alpha parameter being twice the velocity
type = VacuumBC
boundary = right
alpha = 0.2 # 2 * velocity
variable = tracer
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 101
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-1
nl_abs_tol = 1E-8
timestep_tolerance = 1E-3
[]
[Outputs]
[./out]
type = CSV
execute_on = final
[../]
[]
modules/rdg/test/tests/advection_1d/rdgP0.i
# This test demonstrates the advection of a tracer in 1D using the RDG module.
# There is no slope limiting. Changing the SlopeLimiting scheme to minmod, mc,
# or superbee means that a linear reconstruction is performed, and the slope
# limited according to the scheme chosen. Doing this produces RDG(P0P1) and
# substantially reduces numerical diffusion
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmin = 0
xmax = 1
[]
[Variables]
[./tracer]
order = CONSTANT
family = MONOMIAL
[../]
[]
[ICs]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[UserObjects]
[./lslope]
type = AEFVSlopeLimitingOneD
execute_on = 'linear'
scheme = 'none' #none | minmod | mc | superbee
u = tracer
[../]
[./internal_side_flux]
type = AEFVUpwindInternalSideFlux
execute_on = 'linear'
velocity = 0.1
[../]
[./free_outflow_bc]
type = AEFVFreeOutflowBoundaryFlux
execute_on = 'linear'
velocity = 0.1
[../]
[]
[Kernels]
[./dot]
type = TimeDerivative
variable = tracer
[../]
[]
[DGKernels]
[./concentration]
type = AEFVKernel
variable = tracer
component = 'concentration'
flux = internal_side_flux
u = tracer
[../]
[]
[BCs]
[./concentration]
type = AEFVBC
boundary = 'left right'
variable = tracer
component = 'concentration'
flux = free_outflow_bc
u = tracer
[../]
[]
[Materials]
[./aefv]
type = AEFVMaterial
slope_limiting = lslope
u = tracer
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 101
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
end_time = 6
dt = 6E-1
nl_abs_tol = 1E-8
timestep_tolerance = 1E-3
[]
[Outputs]
#exodus = true
csv = true
execute_on = final
[]
modules/porous_flow/test/tests/pressure_pulse/pressure_pulse_1d_2phasePS_KT.i
# Pressure pulse in 1D with 2 phases, 2components - transient
# Using KT stabilization
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0
xmax = 100
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./ppwater]
initial_condition = 2e6
[../]
[./sgas]
initial_condition = 0.3
[../]
[]
[AuxVariables]
[./massfrac_ph0_sp0]
initial_condition = 1
[../]
[./massfrac_ph1_sp0]
initial_condition = 0
[../]
[./ppgas]
family = MONOMIAL
order = FIRST
[../]
[]
[Kernels]
[./mass_component0]
type = PorousFlowMassTimeDerivative
variable = ppwater
fluid_component = 0
[../]
[./flux_component0_phase0]
type = PorousFlowFluxLimitedTVDAdvection
variable = ppwater
advective_flux_calculator = afc_component0_phase0
[../]
[./flux_component0_phase1]
type = PorousFlowFluxLimitedTVDAdvection
variable = ppwater
advective_flux_calculator = afc_component0_phase1
[../]
[./mass_component1]
type = PorousFlowMassTimeDerivative
variable = sgas
fluid_component = 1
[../]
[./flux_component1_phase0]
type = PorousFlowFluxLimitedTVDAdvection
variable = sgas
advective_flux_calculator = afc_component1_phase0
[../]
[./flux_component1_phase1]
type = PorousFlowFluxLimitedTVDAdvection
variable = sgas
advective_flux_calculator = afc_component1_phase1
[../]
[]
[AuxKernels]
[./ppgas]
type = PorousFlowPropertyAux
property = pressure
phase = 1
variable = ppgas
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'ppwater sgas'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
pc = 1e5
[../]
[./afc_component0_phase0]
type = PorousFlowAdvectiveFluxCalculatorUnsaturatedMultiComponent
fluid_component = 0
phase = 0
flux_limiter_type = superbee
[../]
[./afc_component0_phase1]
type = PorousFlowAdvectiveFluxCalculatorUnsaturatedMultiComponent
fluid_component = 0
phase = 1
flux_limiter_type = superbee
[../]
[./afc_component1_phase0]
type = PorousFlowAdvectiveFluxCalculatorUnsaturatedMultiComponent
fluid_component = 1
phase = 0
flux_limiter_type = superbee
[../]
[./afc_component1_phase1]
type = PorousFlowAdvectiveFluxCalculatorUnsaturatedMultiComponent
fluid_component = 1
phase = 1
flux_limiter_type = superbee
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid0]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 1000
thermal_expansion = 0
viscosity = 1e-3
[../]
[./simple_fluid1]
type = SimpleFluidProperties
bulk_modulus = 2e7
density0 = 1
thermal_expansion = 0
viscosity = 1e-5
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = ppwater
phase1_saturation = sgas
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = 'massfrac_ph0_sp0 massfrac_ph1_sp0'
[../]
[./simple_fluid0]
type = PorousFlowSingleComponentFluid
fp = simple_fluid0
phase = 0
[../]
[./simple_fluid1]
type = PorousFlowSingleComponentFluid
fp = simple_fluid1
phase = 1
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1e-15 0 0 0 1e-15 0 0 0 1e-15'
[../]
[./relperm_water]
type = PorousFlowRelativePermeabilityCorey
n = 1
phase = 0
[../]
[./relperm_gas]
type = PorousFlowRelativePermeabilityCorey
n = 1
phase = 1
[../]
[]
[BCs]
[./leftwater]
type = DirichletBC
boundary = left
value = 3e6
variable = ppwater
[../]
[./rightwater]
type = DirichletBC
boundary = right
value = 2e6
variable = ppwater
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'bcgs bjacobi 1E-15 1E-20 10000'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
dt = 1e3
end_time = 1e4
[]
[VectorPostprocessors]
[./pp]
type = LineValueSampler
sort_by = x
variable = 'ppwater ppgas'
start_point = '0 0 0'
end_point = '100 0 0'
num_points = 11
[../]
[]
[Outputs]
file_base = pressure_pulse_1d_2phasePS_KT
print_linear_residuals = false
[./csv]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/newton_cooling/nc01.i
# Newton cooling from a bar. 1-phase transient
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1000
ny = 1
xmin = 0
xmax = 100
ymin = 0
ymax = 1
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'pressure'
number_fluid_phases = 1
number_fluid_components = 1
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
m = 0.8
alpha = 1e-5
[../]
[]
[Variables]
[./pressure]
initial_condition = 2E6
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pressure
[../]
[./flux]
type = PorousFlowAdvectiveFlux
fluid_component = 0
gravity = '0 0 0'
variable = pressure
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 1e6
density0 = 1000
thermal_expansion = 0
viscosity = 1e-3
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = pressure
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-15 0 0 0 1E-15 0 0 0 1E-15'
[../]
[./relperm]
type = PorousFlowRelativePermeabilityCorey # irrelevant in this fully-saturated situation
n = 2
phase = 0
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = pressure
boundary = left
value = 2E6
[../]
[./newton]
type = PorousFlowPiecewiseLinearSink
variable = pressure
boundary = right
pt_vals = '0 100000 200000 300000 400000 500000 600000 700000 800000 900000 1000000 1100000 1200000 1300000 1400000 1500000 1600000 1700000 1800000 1900000 2000000'
multipliers = '0. 5.6677197748570516e-6 0.000011931518841831313 0.00001885408740732065 0.000026504708864284114 0.000034959953203725676 0.000044304443352900224 0.00005463170211001232 0.00006604508815181467 0.00007865883048198513 0.00009259917167338928 0.00010800563134618119 0.00012503240252705603 0.00014384989486488752 0.00016464644014777016 0.00018763017719085535 0.0002130311349595711 0.00024110353477682344 0.00027212833465544285 0.00030641604122040985 0.00034430981736352295'
use_mobility = false
use_relperm = false
fluid_phase = 0
flux_function = 1
[../]
[]
[VectorPostprocessors]
[./porepressure]
type = LineValueSampler
variable = pressure
start_point = '0 0.5 0'
end_point = '100 0.5 0'
sort_by = x
num_points = 20
execute_on = timestep_end
[../]
[]
[Preconditioning]
active = 'andy'
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'bcgs bjacobi 1E-12 1E-15 10000'
[../]
[]
[Executioner]
type = Transient
end_time = 1E8
dt = 1E6
[]
[Outputs]
file_base = nc01
interval = 100000
execute_on = final
exodus = false
[./along_line]
type = CSV
execute_vector_postprocessors_on = final
[../]
[]
test/tests/vectorpostprocessors/line_value_sampler/line_value_sampler.i
###########################################################
# This is a simple test of the Vector Postprocessor
# System. A LineValueSampler is placed inside of a 2D
# domain to sample solution points uniformly along a line.
#
# @Requirement F6.30
###########################################################
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[./v]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[./left_v]
type = DirichletBC
variable = v
boundary = left
value = 1
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = right
value = 0
[../]
[]
[Postprocessors]
[./u_avg]
type = ElementAverageValue
variable = u
execute_on = 'initial timestep_end'
[../]
[]
# Vector Postprocessor System
[VectorPostprocessors]
[./line_sample]
type = LineValueSampler
variable = 'u v'
start_point = '0 0.5 0'
end_point = '1 0.5 0'
num_points = 11
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
execute_on = 'timestep_end'
csv = true
[]
python/peacock/tests/common/time_data.i
###############################################################
# The following tests that the CSV output object can include an
# additional .csv file that contains the time and timestep
# data from VectorPostprocessor object.
###############################################################
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[./v]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[./left_v]
type = DirichletBC
variable = v
boundary = left
value = 1
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = right
value = 0
[../]
[]
[VectorPostprocessors]
[./line_sample]
type = LineValueSampler
variable = 'u v'
start_point = '0 0.5 0'
end_point = '1 0.5 0'
num_points = 11
sort_by = id
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
num_steps = 20
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
execute_on = 'initial timestep_end'
file_base = 'time_data'
[./out]
type = CSV
time_data = true
interval = 2
[../]
[]
test/tests/functions/vector_postprocessor_function/vector_postprocessor_function.i
#This function linearly interpolates the data generated by a vector post
#processor. The purpose is to have a function take points and a field variable
#(aux or primary) as arguments.
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 4
xmin = 0.0
xmax = 0.004
ymin = 0.0
ymax = 0.008
[]
[Variables]
[./u]
initial_condition = 0
[../]
[]
[AuxVariables]
[./v]
initial_condition = 1
[../]
[]
[Functions]
[./ramp_u]
type = ParsedFunction
value = 't'
[../]
[./point_value_function_u]
type = VectorPostprocessorFunction
component = 1
argument_column = y
value_column = u
vectorpostprocessor_name = point_value_vector_postprocessor_u
[../]
[./line_value_function_v]
type = VectorPostprocessorFunction
component = 1
argument_column = y
value_column = v
vectorpostprocessor_name = line_value_vector_postprocessor_v
[../]
[./function_v]
type = PiecewiseLinear
x = '0 0.008'
y = '1 2'
axis = y
[../]
[]
[Kernels]
[./diffusion_u]
type = Diffusion
variable = u
[../]
[]
[AuxKernels]
[./aux_v]
type = FunctionAux
variable = v
function = function_v
[../]
[]
[BCs]
[./top_u]
type = FunctionDirichletBC
boundary = top
variable = u
function = ramp_u
[../]
[./bottom_u]
type = PresetBC
boundary = bottom
variable = u
value = 0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = ' lu superlu_dist 51'
line_search = 'none'
l_max_its = 50
l_tol = 1e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-6
start_time = 0
num_steps = 1
dt = 1
[]
[Postprocessors]
[./point_value_postprocessor_u]
type = FunctionValuePostprocessor
function = point_value_function_u
point = '0.002 0.004 0'
[../]
[./line_value_postprocessor_v]
type = FunctionValuePostprocessor
function = line_value_function_v
point = '0.002 0.004 0'
[../]
[./postprocessor_average_u]
type = ElementAverageValue
variable = u
[../]
[./postprocessor_average_v]
type = ElementAverageValue
variable = v
[../]
[]
[VectorPostprocessors]
[./point_value_vector_postprocessor_u]
type = PointValueSampler
variable = u
points = '0 0.001 0 0 0.004 0 0 0.008 0'
#points = '0.001 0 0 0.002 0 0'
sort_by = y
execute_on = linear
[../]
[./line_value_vector_postprocessor_v]
type = LineValueSampler
variable = v
start_point = '0 0.001 0'
end_point = '0 0.008 0'
num_points = 5
sort_by = y
execute_on = linear
[../]
[]
[Outputs]
interval = 1
csv = false
exodus = true
file_base = out
[./console]
type = Console
output_linear = true
max_rows = 10
[../]
[]
modules/combined/test/tests/joule_heating_heat/jouleheating_heat.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
xmax = 1.0
ymax = 1.0
[]
[Variables]
[./T]
initial_condition = 400.0 # unit in Kelvin only!!
[../]
[./elec]
[../]
[]
[AuxVariables]
[./elec_conduct]
order = FIRST
family = MONOMIAL
[../]
[./e_heatsrc]
order = FIRST
family = MONOMIAL
[../]
[]
[Kernels]
[./diff]
type = HeatConduction
variable = T
[../]
[./HeatTdot]
type = HeatConductionTimeDerivative
variable = T
[../]
[./HeatSrc]
type = JouleHeatingSource
variable = T
elec = elec
[../]
[./electric]
type = HeatConduction
variable = elec
diffusion_coefficient = electrical_conductivity
[../]
[]
[AuxKernels]
[./elec_conduct]
type = MaterialRealAux
variable = elec_conduct
property = electrical_conductivity
execute_on = timestep_end
[../]
[./elec_heatsrc]
type = JouleHeatingHeatGeneratedAux
variable = e_heatsrc
elec = elec
# electrical_conductivity = sigma
execute_on = timestep_end
[../]
[]
[BCs]
[./inlet]
type = DirichletBC
variable = T
boundary = left
value = 400 # K
[../]
[./outlet]
type = DirichletBC
variable = T
boundary = right
value = 600 # K
[../]
[./elec_left]
type = DirichletBC
variable = elec
boundary = left
value = 0
[../]
[./elec_right]
type = DirichletBC
variable = elec
boundary = right
value = 10
[../]
[]
[Materials]
[./k]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity'
prop_values = '10' # in W/mK
[../]
[./cp]
type = GenericConstantMaterial
prop_names = 'specific_heat'
prop_values = '390' # in J/(KgK)
[../]
[./rho]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = '9000' # in Kg/m^3
[../]
[./sigma]
type = SemiconductorLinearConductivity
temp = T
sh_coeff_A = 0.002
sh_coeff_B = 0.001
[../]
[]
[VectorPostprocessors]
[./line_sample]
type = LineValueSampler
variable = 'T elec_conduct elec e_heatsrc'
start_point = '0 0. 0'
end_point = '1.0 0. 0'
num_points = 21
sort_by = id
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_rel_tol = 1e-4
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
dt = 0.5
end_time = 5
[]
[Outputs]
exodus = true
csv = true
[]
modules/porous_flow/test/tests/broadbridge_white/rd02.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 120
ny = 1
xmin = 0
xmax = 6
ymin = 0
ymax = 0.05
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Functions]
[./dts]
type = PiecewiseLinear
y = '1E-2 1 10 500 5000 50000'
x = '0 10 100 1000 10000 500000'
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = pressure
number_fluid_phases = 1
number_fluid_components = 1
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
m = 0.336
alpha = 1.43e-4
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e7
viscosity = 1.01e-3
density0 = 1000
thermal_expansion = 0
[../]
[../]
[]
[Materials]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./temperature]
type = PorousFlowTemperature
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = pressure
capillary_pressure = pc
[../]
[./relperm]
type = PorousFlowRelativePermeabilityVG
m = 0.336
seff_turnover = 0.99
phase = 0
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.33
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '0.295E-12 0 0 0 0.295E-12 0 0 0 0.295E-12'
[../]
[]
[Variables]
[./pressure]
initial_condition = 0.0
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pressure
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pressure
gravity = '-10 0 0'
[../]
[]
[AuxVariables]
[./SWater]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./SWater]
type = MaterialStdVectorAux
property = PorousFlow_saturation_qp
index = 0
variable = SWater
[../]
[]
[BCs]
[./base]
type = DirichletBC
boundary = left
value = 0.0
variable = pressure
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason -ksp_diagonal_scale -ksp_diagonal_scale_fix -ksp_gmres_modifiedgramschmidt -snes_linesearch_monitor'
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu NONZERO 2 1E-10 1E-10 10'
[../]
[]
[VectorPostprocessors]
[./swater]
type = LineValueSampler
variable = SWater
start_point = '0 0 0'
end_point = '6 0 0'
sort_by = x
num_points = 121
execute_on = timestep_end
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_converged_reason'
end_time = 345600
[./TimeStepper]
type = FunctionDT
function = dts
[../]
[]
[Outputs]
file_base = rd02
[./exodus]
type = Exodus
execute_on = final
[../]
[./along_line]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/broadbridge_white/bw01.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 400
ny = 1
xmin = -10
xmax = 10
ymin = 0
ymax = 0.05
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Functions]
[./dts]
type = PiecewiseLinear
y = '1E-5 1E-2 1E-2 1E-1'
x = '0 1E-5 1 10'
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = pressure
number_fluid_phases = 1
number_fluid_components = 1
[../]
[./pc]
type = PorousFlowCapillaryPressureBW
Sn = 0.0
Ss = 1.0
C = 1.5
las = 2
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e9
viscosity = 4
density0 = 10
thermal_expansion = 0
[../]
[../]
[]
[Materials]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./temperature]
type = PorousFlowTemperature
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = pressure
capillary_pressure = pc
[../]
[./relperm]
type = PorousFlowRelativePermeabilityBW
Sn = 0.0
Ss = 1.0
Kn = 0
Ks = 1
C = 1.5
phase = 0
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.25
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1 0 0 0 1 0 0 0 1'
[../]
[]
[Variables]
[./pressure]
initial_condition = -9E2
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pressure
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pressure
gravity = '-0.1 0 0'
[../]
[]
[AuxVariables]
[./SWater]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./SWater]
type = MaterialStdVectorAux
property = PorousFlow_saturation_qp
index = 0
variable = SWater
[../]
[]
[BCs]
[./recharge]
type = PorousFlowSink
variable = pressure
boundary = right
flux_function = -1.25 # corresponds to Rstar being 0.5 because i have to multiply by density*porosity
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason -ksp_diagonal_scale -ksp_diagonal_scale_fix -ksp_gmres_modifiedgramschmidt -snes_linesearch_monitor'
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu NONZERO 2 1E-10 1E-10 10000'
[../]
[]
[VectorPostprocessors]
[./swater]
type = LineValueSampler
variable = SWater
start_point = '-10 0 0'
end_point = '10 0 0'
sort_by = x
num_points = 101
execute_on = timestep_end
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_converged_reason'
end_time = 8
[./TimeStepper]
type = FunctionDT
function = dts
[../]
[]
[Outputs]
file_base = bw01
sync_times = '0.5 2 8'
[./exodus]
type = Exodus
sync_only = true
[../]
[./along_line]
type = CSV
sync_only = true
[../]
[]
modules/porous_flow/test/tests/broadbridge_white/wli02.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 1
xmin = -1000
xmax = 0
ymin = 0
ymax = 0.05
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = pressure
number_fluid_phases = 1
number_fluid_components = 1
[../]
[./pc]
type = PorousFlowCapillaryPressureBW
Sn = 0.0
Ss = 1.0
C = 1.5
las = 2
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e9
viscosity = 4
density0 = 10
thermal_expansion = 0
[../]
[../]
[]
[Materials]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./temperature]
type = PorousFlowTemperature
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = pressure
capillary_pressure = pc
[../]
[./relperm]
type = PorousFlowRelativePermeabilityBW
Sn = 0.0
Ss = 1.0
Kn = 0
Ks = 1
C = 1.5
phase = 0
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.25
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1 0 0 0 1 0 0 0 1'
[../]
[]
[Variables]
[./pressure]
initial_condition = -1E-4
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pressure
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pressure
gravity = '-0.1 0 0'
[../]
[]
[AuxVariables]
[./SWater]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./SWater]
type = MaterialStdVectorAux
property = PorousFlow_saturation_qp
index = 0
variable = SWater
[../]
[]
[BCs]
[./base]
type = DirichletBC
boundary = 'left'
value = -1E-4
variable = pressure
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason -ksp_diagonal_scale -ksp_diagonal_scale_fix -ksp_gmres_modifiedgramschmidt -snes_linesearch_monitor'
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu NONZERO 2 1E-10 1E-10 10000'
[../]
[]
[VectorPostprocessors]
[./swater]
type = LineValueSampler
variable = SWater
start_point = '-1000 0 0'
end_point = '0 0 0'
sort_by = x
num_points = 71
execute_on = timestep_end
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_converged_reason'
end_time = 100
dt = 5
[]
[Outputs]
file_base = wli02
sync_times = '100 500 1000'
[./exodus]
type = Exodus
sync_only = true
[../]
[./along_line]
type = CSV
sync_only = true
[../]
[]
modules/porous_flow/test/tests/thm_rehbinder/fixed_outer_rz.i
# A version of fixed_outer.i that uses the RZ cylindrical coordinate system
[Mesh]
type = GeneratedMesh
dim = 2
nx = 40 # this is the r direction
ny = 1 # this is the height direction
xmin = 0.1
xmax = 1
bias_x = 1.1
ymin = 0.0
ymax = 1.0
[]
[Problem]
coord_type = RZ
[]
[GlobalParams]
displacements = 'disp_r disp_z'
PorousFlowDictator = dictator
biot_coefficient = 1.0
[]
[Variables]
[./disp_r]
[../]
[./disp_z]
[../]
[./porepressure]
[../]
[./temperature]
[../]
[]
[BCs]
[./plane_strain]
type = PresetBC
variable = disp_z
value = 0
boundary = 'top bottom'
[../]
[./cavity_temperature]
type = DirichletBC
variable = temperature
value = 1000
boundary = left
[../]
[./cavity_porepressure]
type = DirichletBC
variable = porepressure
value = 1E6
boundary = left
[../]
[./cavity_zero_effective_stress_x]
type = Pressure
component = 0
variable = disp_r
function = 1E6
boundary = left
use_displaced_mesh = false
[../]
[./outer_temperature]
type = PresetBC
variable = temperature
value = 0
boundary = right
[../]
[./outer_pressure]
type = PresetBC
variable = porepressure
value = 0
boundary = right
[../]
[./fixed_outer_disp]
type = PresetBC
variable = disp_r
value = 0
boundary = right
[../]
[]
[AuxVariables]
[./stress_rr]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_pp]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./stress_rr]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_rr
index_i = 0
index_j = 0
[../]
[./stress_pp] # hoop stress
type = RankTwoAux
rank_two_tensor = stress
variable = stress_pp
index_i = 2
index_j = 2
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
thermal_expansion = 0.0
bulk_modulus = 1E12
viscosity = 1.0E-3
density0 = 1000.0
cv = 1000.0
cp = 1000.0
porepressure_coefficient = 0.0
[../]
[../]
[]
[PorousFlowBasicTHM]
coupling_type = ThermoHydroMechanical
multiply_by_density = false
add_stress_aux = true
porepressure = porepressure
temperature = temperature
thermal_eigenstrain_name = thermal_contribution
gravity = '0 0 0'
fp = the_simple_fluid
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1E10
poissons_ratio = 0.2
[../]
[./strain]
type = ComputeAxisymmetricRZSmallStrain
eigenstrain_names = thermal_contribution
[../]
[./thermal_contribution]
type = ComputeThermalExpansionEigenstrain
temperature = temperature
thermal_expansion_coeff = 1E-6
eigenstrain_name = thermal_contribution
stress_free_temperature = 0.0
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./porosity]
type = PorousFlowPorosityConst # only the initial value of this is ever used
porosity = 0.1
[../]
[./biot_modulus]
type = PorousFlowConstantBiotModulus
solid_bulk_compliance = 1E-10
fluid_bulk_modulus = 1E12
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-12 0 0 0 1E-12 0 0 0 1E-12' # note this is ordered: rr, zz, angle-angle
[../]
[./thermal_expansion]
type = PorousFlowConstantThermalExpansionCoefficient
fluid_coefficient = 1E-6
drained_coefficient = 1E-6
[../]
[./thermal_conductivity]
type = PorousFlowThermalConductivityIdeal
dry_thermal_conductivity = '1E6 0 0 0 1E6 0 0 0 1E6' # note this is ordered: rr, zz, angle-angle
[../]
[]
[VectorPostprocessors]
[./P]
type = LineValueSampler
start_point = '0.1 0 0'
end_point = '1.0 0 0'
num_points = 10
sort_by = x
variable = porepressure
[../]
[./T]
type = LineValueSampler
start_point = '0.1 0 0'
end_point = '1.0 0 0'
num_points = 10
sort_by = x
variable = temperature
[../]
[./U]
type = LineValueSampler
start_point = '0.1 0 0'
end_point = '1.0 0 0'
num_points = 10
sort_by = x
variable = disp_r
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_rtol'
petsc_options_value = 'gmres asm lu 1E-8'
[../]
[]
[Executioner]
type = Steady
solve_type = Newton
[]
[Outputs]
file_base = fixed_outer_rz
execute_on = timestep_end
csv = true
[]
modules/porous_flow/test/tests/flux_limited_TVD_pflow/pffltvd_1D.i
# Using flux-limited TVD advection ala Kuzmin and Turek, mploying PorousFlow Kernels and UserObjects, with superbee flux-limiter
# 1D version
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0
xmax = 1
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./porepressure]
[../]
[./tracer]
[../]
[]
[ICs]
[./porepressure]
type = FunctionIC
variable = porepressure
function = '1 - x'
[../]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = tracer
[../]
[./flux0]
type = PorousFlowFluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = advective_flux_calculator_0
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = porepressure
[../]
[./flux1]
type = PorousFlowFluxLimitedTVDAdvection
variable = porepressure
advective_flux_calculator = advective_flux_calculator_1
[../]
[]
[BCs]
[./constant_injection_porepressure]
type = PresetBC
variable = porepressure
value = 1
boundary = left
[../]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_component_1]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 1
use_mobility = true
flux_function = 1E3
[../]
[./remove_component_0]
type = PorousFlowPiecewiseLinearSink
variable = tracer
boundary = right
fluid_phase = 0
pt_vals = '0 1E3'
multipliers = '0 1E3'
mass_fraction_component = 0
use_mobility = true
flux_function = 1E3
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E9
thermal_expansion = 0
viscosity = 1.0
density0 = 1000.0
[../]
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure tracer'
number_fluid_phases = 1
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureConst
[../]
[./advective_flux_calculator_0]
type = PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent
flux_limiter_type = superbee
fluid_component = 0
[../]
[./advective_flux_calculator_1]
type = PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent
flux_limiter_type = superbee
fluid_component = 1
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = tracer
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = the_simple_fluid
phase = 0
[../]
[./relperm]
type = PorousFlowRelativePermeabilityConst
phase = 0
[../]
[./porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-2 0 0 0 1E-2 0 0 0 1E-2'
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 11
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
nl_abs_tol = 1E-8
timestep_tolerance = 1E-3
[]
[Outputs]
[./out]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/numerical_diffusion/fltvd.i
# Using Flux-Limited TVD Advection ala Kuzmin and Turek, with antidiffusion from superbee flux limiting
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmin = 0
xmax = 1
[]
[Variables]
[./tracer]
[../]
[]
[ICs]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[Kernels]
[./mass_dot]
type = MassLumpedTimeDerivative
variable = tracer
[../]
[./flux]
type = FluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = fluo
[../]
[]
[UserObjects]
[./fluo]
type = AdvectiveFluxCalculatorConstantVelocity
flux_limiter_type = superbee
u = tracer
velocity = '0.1 0 0'
[../]
[]
[BCs]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_tracer]
# Ideally, an OutflowBC would be used, but that does not exist in the framework
# In 1D VacuumBC is the same as OutflowBC, with the alpha parameter being twice the velocity
type = VacuumBC
boundary = right
alpha = 0.2 # 2 * velocity
variable = tracer
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 101
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
nl_abs_tol = 1E-8
nl_max_its = 500
timestep_tolerance = 1E-3
[]
[Outputs]
[./out]
type = CSV
execute_on = final
[../]
[]
modules/porous_flow/test/tests/capillary_pressure/vangenuchten2.i
# Test van Genuchten relative permeability curve by varying saturation over the mesh
# van Genuchten exponent m = 0.5 for both phases
# No residual saturation in either phase
[Mesh]
type = GeneratedMesh
dim = 1
nx = 500
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./p0]
initial_condition = 1e6
[../]
[./s1]
[../]
[]
[AuxVariables]
[./s0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./s1aux]
family = MONOMIAL
order = CONSTANT
[../]
[./p0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./p1aux]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./s0]
type = PorousFlowPropertyAux
property = saturation
phase = 0
variable = s0aux
[../]
[./s1]
type = PorousFlowPropertyAux
property = saturation
phase = 1
variable = s1aux
[../]
[./p0]
type = PorousFlowPropertyAux
property = pressure
phase = 0
variable = p0aux
[../]
[./p1]
type = PorousFlowPropertyAux
property = pressure
phase = 1
variable = p1aux
[../]
[]
[Functions]
[./s1]
type = ParsedFunction
value = x
[../]
[]
[ICs]
[./s1]
type = FunctionIC
variable = s1
function = s1
[../]
[]
[Kernels]
[./p0]
type = Diffusion
variable = p0
[../]
[./s1]
type = Diffusion
variable = s1
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'p0 s1'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
alpha = 1e-5
m = 0.5
sat_lr = 0.1
log_extension = true
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = p0
phase1_saturation = s1
capillary_pressure = pc
[../]
[./kr0]
type = PorousFlowRelativePermeabilityVG
phase = 0
m = 0.5
[../]
[./kr1]
type = PorousFlowRelativePermeabilityCorey
phase = 1
n = 2
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = 's0aux s1aux p0aux p1aux'
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 500
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-6
[]
[BCs]
[./sleft]
type = DirichletBC
variable = s1
value = 0
boundary = left
[../]
[./sright]
type = DirichletBC
variable = s1
value = 1
boundary = right
[../]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
modules/level_set/test/tests/kernels/advection/advection_mms.i
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 12
nx = 48
[]
[Adaptivity]
steps = 5
marker = marker
[./Markers]
[./marker]
type = UniformMarker
mark = REFINE
[../]
[../]
[]
[Variables]
[./phi]
[../]
[]
[AuxVariables]
[./v_x]
initial_condition = 2
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
boundary = 'left'
function = phi_exact
variable = phi
[../]
[]
[Functions]
[./phi_exact]
type = ParsedFunction
value = 'a*sin(pi*x/b)*cos(pi*x)'
vars = 'a b'
vals = '2 12'
[../]
[./phi_mms]
type = ParsedFunction
value = '-2*pi*a*sin(pi*x)*sin(pi*x/b) + 2*pi*a*cos(pi*x)*cos(pi*x/b)/b'
vars = 'a b'
vals = '2 12'
[../]
[]
[Kernels]
[./phi_advection]
type = LevelSetAdvection
variable = phi
velocity_x = v_x
[../]
[./phi_forcing]
type = BodyForce
variable = phi
function = phi_mms
[../]
[]
[Postprocessors]
[./error]
type = ElementL2Error
function = phi_exact
variable = phi
[../]
[./h]
type = AverageElementSize
[../]
[]
[VectorPostprocessors]
active = ''
[./results]
type = LineValueSampler
variable = phi
start_point = '0 0 0'
end_point = '12 0 0'
num_points = 500
sort_by = x
[../]
[]
[Executioner]
type = Steady
nl_rel_tol = 1e-10
solve_type = NEWTON
# A steady-state pure advection problem is numerically challenging,
# it has a zero diagonal in the Jabocian matrix. The following solver
# settings seem to reliably solve this problem.
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
[]
[Outputs]
execute_on = 'TIMESTEP_END'
csv = true
[]
modules/combined/test/tests/beam_eigenstrain_transfer/subapp1_uo_transfer.i
# SubApp with 2D model to test multi app vectorpostprocessor to aux var transfer
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 5
xmin = 0.0
xmax = 0.5
ymin = 0.0
ymax = 0.150080
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./temp]
[../]
[./axial_strain]
order = FIRST
family = MONOMIAL
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t*(500.0)+300.0
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./all]
strain = SMALL
incremental = true
add_variables = true
eigenstrain_names = eigenstrain
[../]
[../]
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
[../]
[./axial_strain]
type = RankTwoAux
variable = axial_strain
rank_two_tensor = total_strain
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-9
start_time = 0.0
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
csv = true
exodus = true
[]
[VectorPostprocessors]
[./axial_str]
type = LineValueSampler
start_point = '0.5 0.0 0.0'
end_point = '0.5 0.150080 0.0'
variable = 'axial_strain'
num_points = 21
sort_by = 'id'
[../]
[]
[Postprocessors]
[./end_disp]
type = PointValue
variable = disp_y
point = '0.5 0.150080 0.0'
[../]
[]
test/tests/outputs/csv_final_and_latest/final.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.25
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
# Vector Postprocessor System
[VectorPostprocessors]
[./line_sample]
type = LineValueSampler
execute_on = 'timestep_end final'
variable = 'u'
start_point = '0 0.5 0'
end_point = '1 0.5 0'
num_points = 11
sort_by = id
[../]
[]
[Outputs]
[./out]
type = CSV
execute_on = 'TIMESTEP_END FINAL'
create_final_symlink = true
[../]
[]
modules/porous_flow/test/tests/thm_rehbinder/fixed_outer.i
[Mesh]
type = AnnularMesh
nr = 40
nt = 16
rmin = 0.1
rmax = 1
tmin = 0.0
tmax = 1.570796326795
growth_r = 1.1
[]
[MeshModifiers]
[./make3D]
type = MeshExtruder
bottom_sideset = bottom
top_sideset = top
extrusion_vector = '0 0 1'
num_layers = 1
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
biot_coefficient = 1.0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./porepressure]
[../]
[./temperature]
[../]
[]
[BCs]
[./plane_strain]
type = PresetBC
variable = disp_z
value = 0
boundary = 'top bottom'
[../]
[./ymin]
type = PresetBC
variable = disp_y
value = 0
boundary = tmin
[../]
[./xmin]
type = PresetBC
variable = disp_x
value = 0
boundary = tmax
[../]
[./cavity_temperature]
type = DirichletBC
variable = temperature
value = 1000
boundary = rmin
[../]
[./cavity_porepressure]
type = DirichletBC
variable = porepressure
value = 1E6
boundary = rmin
[../]
[./cavity_zero_effective_stress_x]
type = Pressure
component = 0
variable = disp_x
function = 1E6
boundary = rmin
use_displaced_mesh = false
[../]
[./cavity_zero_effective_stress_y]
type = Pressure
component = 1
variable = disp_y
function = 1E6
boundary = rmin
use_displaced_mesh = false
[../]
[./outer_temperature]
type = PresetBC
variable = temperature
value = 0
boundary = rmax
[../]
[./outer_pressure]
type = PresetBC
variable = porepressure
value = 0
boundary = rmax
[../]
[./fixed_outer_x]
type = PresetBC
variable = disp_x
value = 0
boundary = rmax
[../]
[./fixed_outer_y]
type = PresetBC
variable = disp_y
value = 0
boundary = rmax
[../]
[]
[AuxVariables]
[./stress_rr]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_pp]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./stress_rr]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = stress_rr
scalar_type = RadialStress
point1 = '0 0 0'
point2 = '0 0 1'
[../]
[./stress_pp]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = stress_pp
scalar_type = HoopStress
point1 = '0 0 0'
point2 = '0 0 1'
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
thermal_expansion = 0.0
bulk_modulus = 1E12
viscosity = 1.0E-3
density0 = 1000.0
cv = 1000.0
cp = 1000.0
porepressure_coefficient = 0.0
[../]
[../]
[]
[PorousFlowBasicTHM]
coupling_type = ThermoHydroMechanical
multiply_by_density = false
add_stress_aux = true
porepressure = porepressure
temperature = temperature
thermal_eigenstrain_name = thermal_contribution
gravity = '0 0 0'
fp = the_simple_fluid
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1E10
poissons_ratio = 0.2
[../]
[./strain]
type = ComputeSmallStrain
eigenstrain_names = thermal_contribution
[../]
[./thermal_contribution]
type = ComputeThermalExpansionEigenstrain
temperature = temperature
thermal_expansion_coeff = 1E-6
eigenstrain_name = thermal_contribution
stress_free_temperature = 0.0
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./porosity]
type = PorousFlowPorosityConst # only the initial value of this is ever used
porosity = 0.1
[../]
[./biot_modulus]
type = PorousFlowConstantBiotModulus
solid_bulk_compliance = 1E-10
fluid_bulk_modulus = 1E12
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-12 0 0 0 1E-12 0 0 0 1E-12'
[../]
[./thermal_expansion]
type = PorousFlowConstantThermalExpansionCoefficient
fluid_coefficient = 1E-6
drained_coefficient = 1E-6
[../]
[./thermal_conductivity]
type = PorousFlowThermalConductivityIdeal
dry_thermal_conductivity = '1E6 0 0 0 1E6 0 0 0 1E6'
[../]
[]
[VectorPostprocessors]
[./P]
type = LineValueSampler
start_point = '0.1 0 0'
end_point = '1.0 0 0'
num_points = 10
sort_by = x
variable = porepressure
[../]
[./T]
type = LineValueSampler
start_point = '0.1 0 0'
end_point = '1.0 0 0'
num_points = 10
sort_by = x
variable = temperature
[../]
[./U]
type = LineValueSampler
start_point = '0.1 0 0'
end_point = '1.0 0 0'
num_points = 10
sort_by = x
variable = disp_x
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_rtol'
petsc_options_value = 'gmres asm lu 1E-8'
[../]
[]
[Executioner]
type = Steady
solve_type = Newton
[]
[Outputs]
file_base = fixed_outer
execute_on = timestep_end
csv = true
[]
modules/tensor_mechanics/test/tests/eigenstrain/reducedOrderRZLinear.i
#
# This test checks whether the ComputeReducedOrderEigenstrain is functioning properly.
#
# If instead of 'reduced_eigenstrain', 'thermal_eigenstrain' is given to
# eigenstrain_names in the Modules/TensorMechanics/Master/all block, the output will be
# quite different.
#
# Open the reducedOrderRZLinear_out_hydro_0001.csv file and plot the hydro variables as
# a function of x. For the reduced order case, the values are smooth across each of the
# two elements with a jump upward from the left element to the right element. However,
# when not using 'reduced_order_eigenstrain', a jump downward appears from the left
# element to the right element.
#
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 1
xmax = 3
xmin = 1
ymax = 1
ymin = 0
#second_order = true
[]
[Functions]
[./tempLinear]
type = ParsedFunction
value = '715-5*x'
[../]
[./tempQuadratic]
type = ParsedFunction
value = '2.5*x*x-15*x+722.5'
[../]
[./tempCubic]
type = ParsedFunction
value = '-1.25*x*x*x+11.25*x*x-33.75*x+733.75'
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 700
[../]
[]
[AuxVariables]
[./hydro_constant]
order = CONSTANT
family = MONOMIAL
[../]
[./hydro_first]
order = FIRST
family = MONOMIAL
[../]
[./hydro_second]
order = SECOND
family = MONOMIAL
[../]
[./sxx_constant]
order = CONSTANT
family = MONOMIAL
[../]
[./sxx_first]
order = FIRST
family = MONOMIAL
[../]
[./sxx_second]
order = SECOND
family = MONOMIAL
[../]
[./szz_constant]
order = CONSTANT
family = MONOMIAL
[../]
[./szz_first]
order = FIRST
family = MONOMIAL
[../]
[./szz_second]
order = SECOND
family = MONOMIAL
[../]
[./temp2]
order = FIRST
family = LAGRANGE
initial_condition = 700
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./all]
add_variables = true
strain = SMALL
incremental = true
temperature = temp2
eigenstrain_names = 'reduced_eigenstrain' #'thermal_eigenstrain'
[../]
[../]
[../]
[]
[Kernels]
[./heat]
type = Diffusion
variable = temp
[../]
[]
[AuxKernels]
[./hydro_constant_aux]
type = RankTwoScalarAux
variable = hydro_constant
rank_two_tensor = stress
scalar_type = Hydrostatic
[../]
[./hydro_first_aux]
type = RankTwoScalarAux
variable = hydro_first
rank_two_tensor = stress
scalar_type = Hydrostatic
[../]
[./hydro_second_aux]
type = RankTwoScalarAux
variable = hydro_second
rank_two_tensor = stress
scalar_type = Hydrostatic
[../]
[./sxx_constant_aux]
type = RankTwoAux
variable = sxx_constant
rank_two_tensor = stress
index_i = 0
index_j = 0
[../]
[./sxx_first_aux]
type = RankTwoAux
variable = sxx_first
rank_two_tensor = stress
index_i = 0
index_j = 0
[../]
[./sxx_second_aux]
type = RankTwoAux
variable = sxx_second
rank_two_tensor = stress
index_i = 0
index_j = 0
[../]
[./szz_constant_aux]
type = RankTwoAux
variable = szz_constant
rank_two_tensor = stress
index_i = 2
index_j = 2
[../]
[./szz_first_aux]
type = RankTwoAux
variable = szz_first
rank_two_tensor = stress
index_i = 2
index_j = 2
[../]
[./szz_second_aux]
type = RankTwoAux
variable = szz_second
rank_two_tensor = stress
index_i = 2
index_j = 2
[../]
[./temp2]
type = FunctionAux
variable = temp2
function = tempLinear
execute_on = timestep_begin
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom top'
value = 0.0
[../]
[./temp_right]
type = DirichletBC
variable = temp
boundary = right
value = 700
[../]
[./temp_left]
type = DirichletBC
variable = temp
boundary = left
value = 710
[../]
[]
[Materials]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1
poissons_ratio = 0
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1
temperature = temp2
stress_free_temperature = 700.0
eigenstrain_name = 'thermal_eigenstrain'
[../]
[./reduced_order_eigenstrain]
type = ComputeReducedOrderEigenstrain
input_eigenstrain_names = 'thermal_eigenstrain'
eigenstrain_name = 'reduced_eigenstrain'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
num_steps = 1
nl_rel_tol = 1e-8 #1e-12
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[]
[VectorPostprocessors]
[./hydro]
type = LineValueSampler
num_points = 100
start_point = '1 0.07e-3 0'
end_point = '3 0.07e-3 0'
sort_by = x
variable = 'hydro_constant hydro_first hydro_second temp2 disp_x disp_y'
[../]
[]
[Outputs]
exodus = true
csv = true
[]
modules/porous_flow/test/tests/pressure_pulse/pressure_pulse_1d_2phasePSVG2.i
# Pressure pulse in 1D with 2 phases, 2components - transient
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0
xmax = 100
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[./ppwater]
initial_condition = 2e6
[../]
[./sgas]
initial_condition = 0.3
[../]
[]
[AuxVariables]
[./massfrac_ph0_sp0]
initial_condition = 1
[../]
[./massfrac_ph1_sp0]
initial_condition = 0
[../]
[./ppgas]
family = MONOMIAL
order = FIRST
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = ppwater
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
variable = ppwater
fluid_component = 0
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = sgas
[../]
[./flux1]
type = PorousFlowAdvectiveFlux
variable = sgas
fluid_component = 1
[../]
[]
[AuxKernels]
[./ppgas]
type = PorousFlowPropertyAux
property = pressure
phase = 1
variable = ppgas
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'ppwater sgas'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
m = 0.5
alpha = 1e-4
sat_lr = 0.3
pc_max = 1e9
log_extension = true
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid0]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 1000
thermal_expansion = 0
viscosity = 1e-3
[../]
[./simple_fluid1]
type = SimpleFluidProperties
bulk_modulus = 2e7
density0 = 1
thermal_expansion = 0
viscosity = 1e-5
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = ppwater
phase1_saturation = sgas
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = 'massfrac_ph0_sp0 massfrac_ph1_sp0'
[../]
[./simple_fluid0]
type = PorousFlowSingleComponentFluid
fp = simple_fluid0
phase = 0
[../]
[./simple_fluid1]
type = PorousFlowSingleComponentFluid
fp = simple_fluid1
phase = 1
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1e-15 0 0 0 1e-15 0 0 0 1e-15'
[../]
[./relperm_water]
type = PorousFlowRelativePermeabilityCorey
n = 1
phase = 0
[../]
[./relperm_gas]
type = PorousFlowRelativePermeabilityCorey
n = 1
phase = 1
[../]
[]
[BCs]
[./leftwater]
type = DirichletBC
boundary = left
value = 3e6
variable = ppwater
[../]
[./rightwater]
type = DirichletBC
boundary = right
value = 2e6
variable = ppwater
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'bcgs bjacobi 1E-15 1E-20 10000'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
dt = 1e3
end_time = 1e4
[]
[VectorPostprocessors]
[./pp]
type = LineValueSampler
sort_by = x
variable = 'ppwater ppgas'
start_point = '0 0 0'
end_point = '100 0 0'
num_points = 11
[../]
[]
[Outputs]
file_base = pressure_pulse_1d_2phasePSVG2
print_linear_residuals = false
[./csv]
type = CSV
execute_on = final
[../]
[]
test/tests/outputs/csv_final_and_latest/latest.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.25
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
# Vector Postprocessor System
[VectorPostprocessors]
[./line_sample]
type = LineValueSampler
execute_on = 'timestep_end'
variable = 'u'
start_point = '0 0.5 0'
end_point = '1 0.5 0'
num_points = 11
sort_by = id
[../]
[]
[Outputs]
[./out]
type = CSV
execute_on = 'TIMESTEP_END'
create_latest_symlink = true
[../]
[]
modules/porous_flow/test/tests/numerical_diffusion/fltvd_no_antidiffusion.i
# Using Flux-Limited TVD Advection ala Kuzmin and Turek, but without any antidiffusion
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmin = 0
xmax = 1
[]
[Variables]
[./tracer]
[../]
[]
[ICs]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[Kernels]
[./mass_dot]
type = MassLumpedTimeDerivative
variable = tracer
[../]
[./flux]
type = FluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = fluo
[../]
[]
[UserObjects]
[./fluo]
type = AdvectiveFluxCalculatorConstantVelocity
flux_limiter_type = none
u = tracer
velocity = '0.1 0 0'
[../]
[]
[BCs]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_tracer]
# Ideally, an OutflowBC would be used, but that does not exist in the framework
# In 1D VacuumBC is the same as OutflowBC, with the alpha parameter being twice the velocity
type = VacuumBC
boundary = right
alpha = 0.2 # 2 * velocity
variable = tracer
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 101
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-1
nl_abs_tol = 1E-8
nl_max_its = 500
timestep_tolerance = 1E-3
[]
[Outputs]
[./out]
type = CSV
execute_on = final
[../]
[]
modules/tensor_mechanics/test/tests/static_deformations/beam_cosserat_01_slippery.i
# Beam bending. One end is clamped and the other end is subjected to
# a constant surface traction.
# The beam thickness is 1, and the Cosserat layer thickness is 0.5,
# so the beam contains 2 Cosserat layers.
# The joint normal stiffness is set very large and the shear stiffness very small
# so that the situation should be very close to a single beam of thickness
# 0.5.
# The deflection should be described by
# u_z = 2sx/G + 2s(1-nu^2)x^2(3L-x)/(Eh^2)
# wc_y = sx(x-2L)/(2B)
# Here
# s = applied shear stress = -2E-4
# x = coordinate along bar (0<=x<=10)
# G = shear modulus = E/2/(1+nu) = 0.4615
# nu = Poisson = 0.3
# L = length of bar = 10
# E = Young = 1.2
# h = Cosserat layer thickness = 0.5
[Mesh]
type = GeneratedMesh
dim = 3
nx = 80
xmax = 10
ny = 1
nz = 1
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[]
[BCs]
# zmin is called back
# zmax is called front
# ymin is called bottom
# ymax is called top
# xmin is called left
# xmax is called right
[./no_dispy]
type = PresetBC
variable = disp_y
boundary = 'bottom top'
value = 0.0
[../]
[./no_wc_y]
type = PresetBC
variable = wc_y
boundary = 'left'
value = 0.0
[../]
[./clamp_z]
type = PresetBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./clamp_x]
type = PresetBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./end_traction]
type = VectorNeumannBC
variable = disp_z
vector_value = '-2E-4 0 0'
boundary = right
[../]
[]
[AuxVariables]
[./wc_x]
[../]
[./wc_z]
[../]
[./strain_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xy
index_i = 0
index_j = 1
[../]
[./strain_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xz
index_i = 0
index_j = 2
[../]
[./strain_yx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yx
index_i = 1
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 1
index_j = 2
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 2
index_j = 0
[../]
[./strain_zy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zy
index_i = 2
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./couple_stress_xx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xx
index_i = 0
index_j = 0
[../]
[./couple_stress_xy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xy
index_i = 0
index_j = 1
[../]
[./couple_stress_xz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xz
index_i = 0
index_j = 2
[../]
[./couple_stress_yx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yx
index_i = 1
index_j = 0
[../]
[./couple_stress_yy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yy
index_i = 1
index_j = 1
[../]
[./couple_stress_yz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yz
index_i = 1
index_j = 2
[../]
[./couple_stress_zx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zx
index_i = 2
index_j = 0
[../]
[./couple_stress_zy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zy
index_i = 2
index_j = 1
[../]
[./couple_stress_zz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zz
index_i = 2
index_j = 2
[../]
[]
[VectorPostprocessors]
[./soln]
type = LineValueSampler
sort_by = x
variable = 'disp_x disp_z stress_xx stress_xz stress_zx stress_zz wc_y couple_stress_xx couple_stress_xz couple_stress_zx couple_stress_zz'
start_point = '0 0 0'
end_point = '10 0 0'
num_points = 11
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 1.2
poisson = 0.3
layer_thickness = 0.5
joint_normal_stiffness = 1E16
joint_shear_stiffness = 1E-6
[../]
[./strain]
type = ComputeCosseratSmallStrain
[../]
[./stress]
type = ComputeCosseratLinearElasticStress
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol -sub_pc_factor_shift_type'
petsc_options_value = 'gmres asm lu 1E-10 1E-14 10 1E-15 1E-10 NONZERO'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
num_steps = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = beam_cosserat_01_slippery
csv = true
exodus = true
[]
modules/porous_flow/test/tests/capillary_pressure/vangenuchten1.i
# Test van Genuchten relative permeability curve by varying saturation over the mesh
# van Genuchten exponent m = 0.5 for both phases
# No residual saturation in either phase
[Mesh]
type = GeneratedMesh
dim = 1
nx = 500
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./p0]
initial_condition = 1e6
[../]
[./s1]
[../]
[]
[AuxVariables]
[./s0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./s1aux]
family = MONOMIAL
order = CONSTANT
[../]
[./p0aux]
family = MONOMIAL
order = CONSTANT
[../]
[./p1aux]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./s0]
type = PorousFlowPropertyAux
property = saturation
phase = 0
variable = s0aux
[../]
[./s1]
type = PorousFlowPropertyAux
property = saturation
phase = 1
variable = s1aux
[../]
[./p0]
type = PorousFlowPropertyAux
property = pressure
phase = 0
variable = p0aux
[../]
[./p1]
type = PorousFlowPropertyAux
property = pressure
phase = 1
variable = p1aux
[../]
[]
[Functions]
[./s1]
type = ParsedFunction
value = x
[../]
[]
[ICs]
[./s1]
type = FunctionIC
variable = s1
function = s1
[../]
[]
[Kernels]
[./p0]
type = Diffusion
variable = p0
[../]
[./s1]
type = Diffusion
variable = s1
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'p0 s1'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
alpha = 1e-5
m = 0.5
sat_lr = 0.1
log_extension = false
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./ppss]
type = PorousFlow2PhasePS
phase0_porepressure = p0
phase1_saturation = s1
capillary_pressure = pc
[../]
[./kr0]
type = PorousFlowRelativePermeabilityVG
phase = 0
m = 0.5
[../]
[./kr1]
type = PorousFlowRelativePermeabilityCorey
phase = 1
n = 2
[../]
[]
[VectorPostprocessors]
[./vpp]
type = LineValueSampler
variable = 's0aux s1aux p0aux p1aux'
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 500
sort_by = id
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-6
[]
[BCs]
[./sleft]
type = DirichletBC
variable = s1
value = 0
boundary = left
[../]
[./sright]
type = DirichletBC
variable = s1
value = 1
boundary = right
[../]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
modules/porous_flow/test/tests/flux_limited_TVD_advection/fltvd_2D.i
# Using Flux-Limited TVD Advection ala Kuzmin and Turek, with antidiffusion from superbee flux limiting
# 2D version
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
xmin = 0
xmax = 1
ny = 4
ymin = 0
ymax = 0.5
[]
[Variables]
[./tracer]
[../]
[]
[ICs]
[./tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1,0,if(x>0.3,0,1))'
[../]
[]
[Kernels]
[./mass_dot]
type = MassLumpedTimeDerivative
variable = tracer
[../]
[./flux]
type = FluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = fluo
[../]
[]
[UserObjects]
[./fluo]
type = AdvectiveFluxCalculatorConstantVelocity
flux_limiter_type = superbee
u = tracer
velocity = '0.1 0 0'
[../]
[]
[BCs]
[./no_tracer_on_left]
type = PresetBC
variable = tracer
value = 0
boundary = left
[../]
[./remove_tracer]
# Ideally, an OutflowBC would be used, but that does not exist in the framework
# In 1D VacuumBC is the same as OutflowBC, with the alpha parameter being twice the velocity
type = VacuumBC
boundary = right
alpha = 0.2 # 2 * velocity
variable = tracer
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0.5 0'
num_points = 11
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
nl_abs_tol = 1E-8
nl_max_its = 500
timestep_tolerance = 1E-3
[]
[Outputs]
print_linear_residuals = false
[./out]
type = CSV
execute_on = final
[../]
[]
Child Objects
test/include/vectorpostprocessors/DynamicPointValueSampler.h
// This file is part of the MOOSE framework
// https://www.mooseframework.org
//
// All rights reserved, see COPYRIGHT for full restrictions
// https://github.com/idaholab/moose/blob/master/COPYRIGHT
//
// Licensed under LGPL 2.1, please see LICENSE for details
// https://www.gnu.org/licenses/lgpl-2.1.html
#ifndef DYNAMICPOINTVALUESAMPLER_H
#define DYNAMICPOINTVALUESAMPLER_H
// MOOSE includes
#include "LineValueSampler.h"
// Forward Declarations
class DynamicPointValueSampler;
template <>
InputParameters validParams<DynamicPointValueSampler>();
class DynamicPointValueSampler : public LineValueSampler
{
public:
DynamicPointValueSampler(const InputParameters & parameters);
virtual void initialize() override;
protected:
const unsigned int _adder;
const bool _use_transfer;
};
#endif
References
- Description LineValueSampler samples the given variables / auxvariables at equally spaced points between the start and end points of a user provided line segment . The sampled points and the values are written to a csv file at every time step . The sorting order of the points can be changed using the sort_by parameter which takes x , y , z or id ( increasing distance from start point ) as input .
- Input Parameters
- Input Files
- Child Objects
- References