From 044b8a95e94da6ee0000b504ebbb72a5499351a8 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Sun, 8 Oct 2023 21:32:15 +0000 Subject: [PATCH] build based on a75edbc --- dev/index.html | 2 +- dev/man/LaMEM_ModelFunctions/index.html | 18 +++++++++--------- dev/man/installation/index.html | 2 +- dev/man/installation_HPC/index.html | 2 +- dev/man/juliasetup_LaPalma/index.html | 2 +- dev/man/juliasetup_example_sphere/index.html | 2 +- dev/man/juliasetup_pluto/index.html | 2 +- dev/man/juliasetups/index.html | 2 +- dev/man/listfunctions/index.html | 6 +++--- dev/man/readtimesteps/index.html | 2 +- dev/man/runlamem/index.html | 2 +- dev/search/index.html | 2 +- 12 files changed, 22 insertions(+), 22 deletions(-) diff --git a/dev/index.html b/dev/index.html index b5b8e06..4442b15 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Home · LaMEM.jl

LaMEM.jl

This is the julia interface to LaMEM, which does a number of handy things:

  • It will automatically download a binary installation of LaMEM, along with the correct version of PETSc and mpiexec for your system. You can also use these binaries directly from your terminal, so you are not limited to julia. Gone are the days where you had to first spend hours or days to install PETSc on your system!
  • We provide a simple function to run LaMEM from julia (also in parallel).
  • We provide functions to read timesteps back into julia.
+Home · LaMEM.jl

LaMEM.jl

This is the julia interface to LaMEM, which does a number of handy things:

  • It will automatically download a binary installation of LaMEM, along with the correct version of PETSc and mpiexec for your system. You can also use these binaries directly from your terminal, so you are not limited to julia. Gone are the days where you had to first spend hours or days to install PETSc on your system!
  • We provide a simple function to run LaMEM from julia (also in parallel).
  • We provide functions to read timesteps back into julia.
diff --git a/dev/man/LaMEM_ModelFunctions/index.html b/dev/man/LaMEM_ModelFunctions/index.html index f8e740f..c66c6e9 100644 --- a/dev/man/LaMEM_ModelFunctions/index.html +++ b/dev/man/LaMEM_ModelFunctions/index.html @@ -1,5 +1,5 @@ -Available functions · LaMEM.jl

List functions

These are all the functions that are provided for the LaMEM Julia Setup interface

LaMEM.LaMEM_Model.BoundaryConditionsType
Structure that contains the LaMEM boundary conditions information.
  • noslip::Vector{Int64}: No-slip boundary flag mask (left right front back bottom top)

  • open_top_bound::Int64: Stress-free (free surface/infinitely fast erosion) top boundary flag

  • temp_top::Float64: Constant temperature on the top boundary

  • temp_bot::Float64: Constant temperature on the bottom boundary

  • exx_num_periods::Int64: number intervals of constant background strain rate (x-axis)

  • exx_time_delims::Vector{Float64}: time delimiters (one less than number of intervals, not required for one interval)

  • exx_strain_rates::Vector{Float64}: strain rates for each interval

  • eyy_num_periods::Int64: eyynumperiods

  • eyy_time_delims::Vector{Float64}: eyytimedelims

  • eyy_strain_rates::Vector{Float64}: eyystrainrates

  • exy_num_periods::Int64: exynumperiods

  • exy_time_delims::Vector{Float64}: exytimedelims

  • exy_strain_rates::Vector{Float64}: exystrainrates

  • exz_num_periods::Int64: exznumperiods

  • exz_time_delims::Vector{Float64}: exztimedelims

  • exz_strain_rates::Vector{Float64}: exzstrainrates

  • eyz_num_periods::Int64: eyznumperiods

  • eyz_time_delims::Vector{Float64}: eyztimedelims

  • eyz_strain_rates::Vector{Float64}: eyzstrainrates

  • bg_ref_point::Vector{Float64}: background strain rate reference point (fixed)

source
LaMEM.LaMEM_Model.DikeType
Defines the properties related to inserting dikes
  • ID::Int64: Material phase ID

  • Mf::Float64: value for dike/magma- accommodated extension, between 0 and 1, in the front of the box, for phase dike

  • Mc::Float64: [optional] value for dike/magma- accommodate extension, between 0 and 1, for dike phase; M is linearly interpolated between Mf & Mc and Mc & Mb, if not set, Mc default is set to -1 so it is not used

  • y_Mc::Union{Nothing, Float64}: [optional], location for Mc, must be between front and back boundaries of dike box, if not set, default value to 0.0, but not used

  • Mb::Union{Nothing, Float64}: value for dike/magma-accommodated extension, between 0 and 1, in the back of the box, for phase dike

  • PhaseID::Union{Nothing, Int64}: Phase ID

  • PhaseTransID::Union{Nothing, Int64}: Phase transition ID

source
LaMEM.LaMEM_Model.FreeSurfaceType
Structure that contains the LaMEM free surface information.
  • surf_use::Int64: Free surface activation flag

  • surf_corr_phase::Int64: air phase ratio correction flag (phases in an element that contains are modified based on the surface position)

  • surf_level::Union{Nothing, Float64}: initial level of the free surface

  • surf_air_phase::Union{Nothing, Int64}: phase ID of sticky air layer

  • surf_max_angle::Float64: maximum angle with horizon (smoothed if larger)

  • surf_topo_file::String: initial topography file (redundant)

  • erosion_model::Int64: erosion model [0-none (default), 1-infinitely fast, 2-prescribed rate with given level]

  • er_num_phases::Int64: number of erosion phases

  • er_time_delims::Vector{Float64}: erosion time delimiters (one less than number)

  • er_rates::Vector{Float64}: constant erosion rates in different time periods

  • er_levels::Vector{Int64}: levels above which we apply constant erosion rates in different time periods

  • sediment_model::Int64: sedimentation model [0-none (dafault), 1-prescribed rate with given level, 2-cont. margin]

  • sed_num_layers::Int64: number of sediment layers

  • sed_time_delims::Vector{Float64}: sediment layers time delimiters (one less than number)

  • sed_rates::Vector{Float64}: sediment rates in different time periods

  • sed_levels::Vector{Float64}: levels below which we apply constant sediment rates in different time periods

  • sed_phases::Vector{Int64}: sediment layers phase numbers in different time periods

  • marginO::Vector{Float64}: lateral coordinates of continental margin - origin

  • marginE::Vector{Float64}: lateral coordinates of continental margin - 2nd point

  • hUp::Float64: up dip thickness of sediment cover (onshore)

  • hDown::Float64: down dip thickness of sediment cover (off shore)

  • dTrans::Float64: half of transition zone

  • Topography::Union{Nothing, GeophysicalModelGenerator.CartData}: Topography grid

source
LaMEM.LaMEM_Model.GridType
Structure that contains the LaMEM grid information
  • nmark_x::Int64: number of markers/element in x-direction

  • nmark_y::Int64: number of markers/element in y-direction

  • nmark_z::Int64: number of markers/element in x-direction

  • nel_x::Vector{Int64}: number of elements in x-direction

  • nel_y::Vector{Int64}: number of elements in y-direction

  • nel_z::Vector{Int64}: number of elements in z-direction

  • coord_x::Vector{Float64}: coordinates in x-direction

  • coord_y::Vector{Float64}: coordinates in y-direction

  • coord_z::Vector{Float64}: coordinates in z-direction

  • nseg_x::Int64: number of segments in x-direction (if we employ variable grid spacing in x-direction)

  • nseg_y::Int64: number of segments in y-direction (if we employ variable grid spacing in y-direction)

  • nseg_z::Int64: number of segments in z-direction (if we employ variable grid spacing in z-direction)

  • bias_x::Vector{Float64}: bias in x-direction (if we employ variable grid spacing in x-direction)

  • bias_y::Vector{Float64}: bias in y-direction (if we employ variable grid spacing in y-direction)

  • bias_z::Vector{Float64}: bias in z-direction (if we employ variable grid spacing in z-direction)

  • Grid::GeophysicalModelGenerator.LaMEM_grid: Contains the LaMEM Grid object

  • Phases::Array{Int32}: Phases; 3D phase information

  • Temp::Array{Float64}: Temp; 3D phase information

Example 1

julia> d=LaMEM.Grid(coord_x=[0.0, 0.7, 0.8, 1.0], bias_x=[0.3,1.0,3.0], nel_x=[10,4,2])
+Available functions · LaMEM.jl

List functions

These are all the functions that are provided for the LaMEM Julia Setup interface

LaMEM.LaMEM_Model.BoundaryConditionsType
Structure that contains the LaMEM boundary conditions information.
  • noslip::Vector{Int64}: No-slip boundary flag mask (left right front back bottom top)

  • open_top_bound::Int64: Stress-free (free surface/infinitely fast erosion) top boundary flag

  • temp_top::Float64: Constant temperature on the top boundary

  • temp_bot::Float64: Constant temperature on the bottom boundary

  • exx_num_periods::Int64: number intervals of constant background strain rate (x-axis)

  • exx_time_delims::Vector{Float64}: time delimiters (one less than number of intervals, not required for one interval)

  • exx_strain_rates::Vector{Float64}: strain rates for each interval

  • eyy_num_periods::Int64: eyynumperiods

  • eyy_time_delims::Vector{Float64}: eyytimedelims

  • eyy_strain_rates::Vector{Float64}: eyystrainrates

  • exy_num_periods::Int64: exynumperiods

  • exy_time_delims::Vector{Float64}: exytimedelims

  • exy_strain_rates::Vector{Float64}: exystrainrates

  • exz_num_periods::Int64: exznumperiods

  • exz_time_delims::Vector{Float64}: exztimedelims

  • exz_strain_rates::Vector{Float64}: exzstrainrates

  • eyz_num_periods::Int64: eyznumperiods

  • eyz_time_delims::Vector{Float64}: eyztimedelims

  • eyz_strain_rates::Vector{Float64}: eyzstrainrates

  • bg_ref_point::Vector{Float64}: background strain rate reference point (fixed)

source
LaMEM.LaMEM_Model.DikeType
Defines the properties related to inserting dikes
  • ID::Int64: Material phase ID

  • Mf::Float64: value for dike/magma- accommodated extension, between 0 and 1, in the front of the box, for phase dike

  • Mc::Float64: [optional] value for dike/magma- accommodate extension, between 0 and 1, for dike phase; M is linearly interpolated between Mf & Mc and Mc & Mb, if not set, Mc default is set to -1 so it is not used

  • y_Mc::Union{Nothing, Float64}: [optional], location for Mc, must be between front and back boundaries of dike box, if not set, default value to 0.0, but not used

  • Mb::Union{Nothing, Float64}: value for dike/magma-accommodated extension, between 0 and 1, in the back of the box, for phase dike

  • PhaseID::Union{Nothing, Int64}: Phase ID

  • PhaseTransID::Union{Nothing, Int64}: Phase transition ID

source
LaMEM.LaMEM_Model.FreeSurfaceType
Structure that contains the LaMEM free surface information.
  • surf_use::Int64: Free surface activation flag

  • surf_corr_phase::Int64: air phase ratio correction flag (phases in an element that contains are modified based on the surface position)

  • surf_level::Union{Nothing, Float64}: initial level of the free surface

  • surf_air_phase::Union{Nothing, Int64}: phase ID of sticky air layer

  • surf_max_angle::Float64: maximum angle with horizon (smoothed if larger)

  • surf_topo_file::String: initial topography file (redundant)

  • erosion_model::Int64: erosion model [0-none (default), 1-infinitely fast, 2-prescribed rate with given level]

  • er_num_phases::Int64: number of erosion phases

  • er_time_delims::Vector{Float64}: erosion time delimiters (one less than number)

  • er_rates::Vector{Float64}: constant erosion rates in different time periods

  • er_levels::Vector{Int64}: levels above which we apply constant erosion rates in different time periods

  • sediment_model::Int64: sedimentation model [0-none (dafault), 1-prescribed rate with given level, 2-cont. margin]

  • sed_num_layers::Int64: number of sediment layers

  • sed_time_delims::Vector{Float64}: sediment layers time delimiters (one less than number)

  • sed_rates::Vector{Float64}: sediment rates in different time periods

  • sed_levels::Vector{Float64}: levels below which we apply constant sediment rates in different time periods

  • sed_phases::Vector{Int64}: sediment layers phase numbers in different time periods

  • marginO::Vector{Float64}: lateral coordinates of continental margin - origin

  • marginE::Vector{Float64}: lateral coordinates of continental margin - 2nd point

  • hUp::Float64: up dip thickness of sediment cover (onshore)

  • hDown::Float64: down dip thickness of sediment cover (off shore)

  • dTrans::Float64: half of transition zone

  • Topography::Union{Nothing, GeophysicalModelGenerator.CartData}: Topography grid

source
LaMEM.LaMEM_Model.GridType
Structure that contains the LaMEM grid information
  • nmark_x::Int64: number of markers/element in x-direction

  • nmark_y::Int64: number of markers/element in y-direction

  • nmark_z::Int64: number of markers/element in x-direction

  • nel_x::Vector{Int64}: number of elements in x-direction

  • nel_y::Vector{Int64}: number of elements in y-direction

  • nel_z::Vector{Int64}: number of elements in z-direction

  • coord_x::Vector{Float64}: coordinates in x-direction

  • coord_y::Vector{Float64}: coordinates in y-direction

  • coord_z::Vector{Float64}: coordinates in z-direction

  • nseg_x::Int64: number of segments in x-direction (if we employ variable grid spacing in x-direction)

  • nseg_y::Int64: number of segments in y-direction (if we employ variable grid spacing in y-direction)

  • nseg_z::Int64: number of segments in z-direction (if we employ variable grid spacing in z-direction)

  • bias_x::Vector{Float64}: bias in x-direction (if we employ variable grid spacing in x-direction)

  • bias_y::Vector{Float64}: bias in y-direction (if we employ variable grid spacing in y-direction)

  • bias_z::Vector{Float64}: bias in z-direction (if we employ variable grid spacing in z-direction)

  • Grid::GeophysicalModelGenerator.LaMEM_grid: Contains the LaMEM Grid object

  • Phases::Array{Int32}: Phases; 3D phase information

  • Temp::Array{Float64}: Temp; 3D phase information

Example 1

julia> d=LaMEM.Grid(coord_x=[0.0, 0.7, 0.8, 1.0], bias_x=[0.3,1.0,3.0], nel_x=[10,4,2])
 LaMEM grid with 1D refinement: 
   nel         : ([10, 4, 2], [16], [16])
   marker/cell : (3, 3, 3)
@@ -11,7 +11,7 @@
   marker/cell : (3, 3, 3)
   x           ϵ [-10.0 : 10.0]
   y           ϵ [-10.0 : 0.0]
-  z           ϵ [-10.0 : 0.0]
source
LaMEM.LaMEM_Model.MaterialsType
Structure that contains the material properties in the current simulation
  • Phases::Vector{Phase}: Different Materials implemented

  • SofteningLaws::Vector{Softening}: Softening laws implemented

  • PhaseTransitions::Vector{PhaseTransition}: Internal Phase Transitions (that change the ID of markers) implemented

  • Dikes::Vector{Dike}: Dikes implemented (mostly for MOR simulations)

source
LaMEM.LaMEM_Model.ModelType

; Model

Structure that holds all the information to create a LaMEM input file

  • Scaling::Scaling: Scaling parameters

  • Grid::Grid: LaMEM Grid

  • Time::Any: Time options

  • FreeSurface::Any: Free surface options

  • BoundaryConditions::Any: Boundary conditions

  • SolutionParams::Any: Global solution parameters

  • Solver::Any: Solver options and optional PETSc options

  • ModelSetup::Any: Model setup

  • Output::Any: Output options

  • Materials::Any: Material parameters for each of the phases

source
LaMEM.LaMEM_Model.ModelMethod
Model(args...)

Allow to define a model setup by specifying some of the basic objects

Example

julia> d = Model(Grid(nel=(10,1,20)), Scaling(NO_units()))
+  z           ϵ [-10.0 : 0.0]
source
LaMEM.LaMEM_Model.MaterialsType
Structure that contains the material properties in the current simulation
  • Phases::Vector{Phase}: Different Materials implemented

  • SofteningLaws::Vector{Softening}: Softening laws implemented

  • PhaseTransitions::Vector{PhaseTransition}: Internal Phase Transitions (that change the ID of markers) implemented

  • Dikes::Vector{Dike}: Dikes implemented (mostly for MOR simulations)

source
LaMEM.LaMEM_Model.ModelType

; Model

Structure that holds all the information to create a LaMEM input file

  • Scaling::Scaling: Scaling parameters

  • Grid::Grid: LaMEM Grid

  • Time::Any: Time options

  • FreeSurface::Any: Free surface options

  • BoundaryConditions::Any: Boundary conditions

  • SolutionParams::Any: Global solution parameters

  • Solver::Any: Solver options and optional PETSc options

  • ModelSetup::Any: Model setup

  • Output::Any: Output options

  • Materials::Any: Material parameters for each of the phases

source
LaMEM.LaMEM_Model.ModelMethod
Model(args...)

Allow to define a model setup by specifying some of the basic objects

Example

julia> d = Model(Grid(nel=(10,1,20)), Scaling(NO_units()))
 LaMEM Model setup
 |
 |-- Scaling             :  GeoParams.Units.GeoUnits{GeoParams.Units.NONE}
@@ -23,7 +23,7 @@
 |-- Model setup options :  Type=geom; 
 |-- Output options      :  filename=output; pvd=1; avd=0; surf=0
 |-- Materials           :  1 phases;  
-
source
LaMEM.LaMEM_Model.ModelMethod
Model(;
     Scaling=Scaling(GEO_units()),
     Grid=Grid(), 
     Time=Time(),
@@ -34,18 +34,18 @@
     ModelSetup=ModelSetup(),
     Output=Output(),
     Materials=Materials()
-    )

Creates a LaMEM Model setup.

  • Scaling::Scaling

  • Grid::Grid

  • Time::Any

  • FreeSurface::Any

  • BoundaryConditions::Any

  • SolutionParams::Any

  • Solver::Any

  • ModelSetup::Any

  • Output::Any

  • Materials::Any

source
LaMEM.LaMEM_Model.ModelSetupType
Structure that contains the LaMEM Model Setup and Advection options
  • msetup::String: Setup type - can be geom (phases are assigned from geometric primitives), files (from julia input), polygons (from geomIO input, which requires poly_file to be specified)

  • rand_noise::Int64: add random noise to the particle location

  • rand_noiseGP::Int64: random noise flag, subsequently applied to geometric primitives

  • bg_phase::Int64: background phase ID

  • save_mark::Int64: save marker to disk flag

  • mark_load_file::String: marker input file (extension is .xxxxxxxx.dat), if using msetup=files

  • mark_save_file::String: marker output file (extension is .xxxxxxxx.dat)

  • poly_file::String: polygon geometry file (redundant), if using msetup=polygons

  • temp_file::String: initial temperature file (redundant), if not set on markers

  • advect::String: advection scheme; options=none (no advection); basic (Euler classical implementation [default]); Euler (Euler explicit in time); rk2 (Runge-Kutta 2nd order in space)

  • interp::String: velocity interpolation scheme; options = stag (trilinear interpolation from FDSTAG points), minmod ( MINMOD interpolation to nodes, trilinear interpolation to markers + correction), stagp ( STAG_P empirical approach by T. Gerya)

  • stagp_a::Float64: STAG_P velocity interpolation parameter

  • mark_ctrl::String: marker control type; options are subgrid (default; marker control enforced over fine scale grid), none (none), basic (AVD for cells + corner insertion), and avd (pure AVD for all control volumes)

  • nmark_lim::Vector{Int64}: min/max number per cell (marker control)

  • nmark_avd::Vector{Int64}: x-y-z AVD refinement factors (avd marker control)

  • nmark_sub::Int64: max number of same phase markers per subcell (subgrid marker control)

  • geom_primitives::Vector: Different geometric primitives that can be selected if we msetup=geom; seegeom_Sphere`

source
LaMEM.LaMEM_Model.OutputType
Structure that contains the LaMEM output options
  • out_file_name::Any: output file name

  • out_dir::Any: output directory

  • param_file_name::Any: parameter filename

  • write_VTK_setup::Any: write VTK initial model setup

  • out_pvd::Any: activate writing .pvd file

  • out_phase::Any: dominant phase

  • out_density::Any: density

  • out_visc_total::Any: total (viscoelastoplastic) viscosity

  • out_visc_creep::Any: creep viscosity

  • out_velocity::Any: velocity

  • out_pressure::Any: (dynamic) pressure

  • out_tot_press::Any: total pressure

  • out_eff_press::Any: effective pressure

  • out_over_press::Any: outoverpress

  • out_litho_press::Any: lithospheric pressure

  • out_pore_press::Any: pore pressure

  • out_temperature::Any: temperature

  • out_dev_stress::Any: deviatoric strain rate tensor

  • out_j2_dev_stress::Any: second invariant of deviatoric stress tensor

  • out_strain_rate::Any: deviatoric strain rate tensor

  • out_j2_strain_rate::Any: second invariant of strain rate tensor

  • out_shmax::Any: sh max

  • out_ehmax::Any: eh max

  • out_yield::Any: yield stress

  • out_rel_dif_rate::Any: relative proportion of diffusion creep strainrate

  • out_rel_dis_rate::Any: relative proportion of dislocation creep strainrate

  • out_rel_prl_rate::Any: relative proportion of peierls creep strainrate

  • out_rel_pl_rate::Any: relative proportion of plastic strainrate

  • out_plast_strain::Any: accumulated plastic strain

  • out_plast_dissip::Any: plastic dissipation

  • out_tot_displ::Any: total displacement

  • out_moment_res::Any: momentum residual

  • out_cont_res::Any: continuity residual

  • out_energ_res::Any: energy residual

  • out_melt_fraction::Any: Melt fraction

  • out_fluid_density::Any: fluid density

  • out_conductivity::Any: conductivity

  • out_vel_gr_tensor::Any: velocity gradient tensor

  • out_surf::Any: activate surface output

  • out_surf_pvd::Any: activate writing .pvd file

  • out_surf_velocity::Any: surface velocity

  • out_surf_topography::Any: surface topography

  • out_surf_amplitude::Any: amplitude of topography (=topo-average(topo))

  • out_mark::Any: activate marker output

  • out_mark_pvd::Any: activate writing .pvd file

  • out_avd::Any: activate AVD phase output

  • out_avd_pvd::Any: activate writing .pvd file

  • out_avd_ref::Any: AVD grid refinement factor

  • out_ptr::Any: activate

  • out_ptr_ID::Any: ID of the passive tracers

  • out_ptr_phase::Any: phase of the passive tracers

  • out_ptr_Pressure::Any: interpolated pressure

  • out_ptr_Temperature::Any: temperature

  • out_ptr_MeltFraction::Any: melt fraction computed using P-T of the marker

  • out_ptr_Active::Any: option that highlight the marker that are currently active

  • out_ptr_Grid_Mf::Any: option that allow to store the melt fraction seen within the cell

source
LaMEM.LaMEM_Model.PhaseType
Defines the material properties for each of the phases
  • ID::Union{Nothing, Int64}: Material phase ID

  • Name::Union{Nothing, String}: Description of the phase

  • rho::Union{Nothing, Float64}: Density [kg/m^3]

  • eta::Union{Nothing, Float64}: Linear viscosity [Pas]

  • visID::Union{Nothing, Int64}: material ID for phase visualization (default is ID)

  • diff_prof::Union{Nothing, String}: DIFFUSION creep profile; example: "DryOlivinediffcreep-HirthKohlstedt_2003"

  • disl_prof::Union{Nothing, String}: DISLOCATION creep profile; example: "Granite-Tireletal_2008"

  • peir_prof::Union{Nothing, String}: PEIERLS creep profile; example: "OlivinePeierls-Kameyama1999"

  • rho_n::Union{Nothing, Float64}: depth-dependent density model parameter

  • rho_c::Union{Nothing, Float64}: depth-dependent density model parameter

  • beta::Union{Nothing, Float64}: pressure-dependent density model parameter

  • G::Union{Nothing, Float64}: shear modulus

  • Kb::Union{Nothing, Float64}: bulk modulus

  • E::Union{Nothing, Float64}: Young's modulus

  • nu::Union{Nothing, Float64}: Poisson's ratio

  • Kp::Union{Nothing, Float64}: pressure dependence parameter

  • Bd::Union{Nothing, Float64}: DIFFUSION creep pre-exponential constant

  • Ed::Union{Nothing, Float64}: activation energy

  • Vd::Union{Nothing, Float64}: activation volume

  • eta0::Union{Nothing, Float64}: POWER LAW reference viscosity

  • e0::Union{Nothing, Float64}: reference strain rate

  • Bn::Union{Nothing, Float64}: DISLOCATION creep pre-exponential constant

  • En::Union{Nothing, Float64}: activation energy

  • Vn::Union{Nothing, Float64}: activation volume

  • n::Union{Nothing, Float64}: power law exponent

  • Bp::Union{Nothing, Float64}: PEIERLS creep pre-exponential constant

  • Ep::Union{Nothing, Float64}: activation energy

  • Vp::Union{Nothing, Float64}: activation volume

  • taup::Union{Nothing, Float64}: scaling stress

  • gamma::Union{Nothing, Float64}: approximation parameter

  • q::Union{Nothing, Float64}: stress-dependence parameter

  • eta_fk::Union{Nothing, Float64}: reference viscosity for Frank-Kamenetzky viscosity

  • gamma_fk::Union{Nothing, Float64}: gamma parameter for Frank-Kamenetzky viscosity

  • TRef_fk::Union{Nothing, Float64}: reference Temperature for Frank-Kamenetzky viscosity (if not set it is 0°C)

  • ch::Union{Nothing, Float64}: cohesion

  • fr::Union{Nothing, Float64}: friction angle

  • eta_st::Union{Nothing, Float64}: stabilization viscosity (default is eta_min)

  • rp::Union{Nothing, Float64}: pore-pressure ratio

  • chSoftID::Union{Nothing, Int64}: friction softening law ID

  • frSoftID::Union{Nothing, Int64}: cohesion softening law ID

  • healID::Union{Nothing, Int64}: healing ID, points to healTau in Softening

  • alpha::Union{Nothing, Float64}: thermal expansivity

  • Cp::Union{Nothing, Float64}: specific heat (capacity), J⋅K−1⋅kg−1

  • k::Union{Nothing, Float64}: thermal conductivity

  • A::Union{Nothing, Float64}: radiogenic heat production

  • T::Union{Nothing, Float64}: optional temperature to set within the phase

  • Latent_hx::Union{Nothing, Float64}: optional, used for dike heating, J/kg

  • T_liq::Union{Nothing, Float64}: optional, used for dike heating, liquidus temperature of material, celsius

  • T_sol::Union{Nothing, Float64}: optional, used for dike heating, solidus temperature of material, celsius

  • T_Nu::Union{Nothing, Float64}: default value for thermal conductivity boundary

  • nu_k::Union{Nothing, Float64}: optional parameter, Nusselt number for use with conductivity

  • rho_ph::Union{Nothing, String}: name of the phase diagram you want to use (still needs rho to be defined for the initial guess of pressure)

  • rho_ph_dir::Union{Nothing, String}: in case the phase diagram has a different path provide the path (without the name of the actual PD) here

  • mfc::Union{Nothing, Float64}: melt fraction viscosity correction factor (positive scalar)

source
LaMEM.LaMEM_Model.PhaseTransitionType
Defines phase transitions on markers (that change the Phase ID of a marker depending on some conditions)
  • ID::Int64: Phase_transition law ID

  • Type::String: [Constant, Clapeyron, Box]: Constant - the phase transition occurs only at a fixed value of the parameter; Clapeyron - clapeyron slope

  • Name_Clapeyron::Union{Nothing, Int64}: Type of predefined Clapeyron slope, such as MantleTransition660km

  • PTBox_Bounds::Union{Nothing, Vector{Float64}}: box bound coordinates: [left, right, front, back, bottom, top]

  • BoxVicinity::Union{Nothing, Int64}: 1: only check particles in the vicinity of the box boundaries (2: in all directions)

  • Parameter_transition::String: [T = Temperature, P = Pressure, Depth = z-coord, X=x-coord, Y=y-coord, APS = accumulated plastic strain, MeltFraction, t = time] parameter that triggers the phase transition

  • ConstantValue::Union{Nothing, Float64}: Value of the parameter [unit of T,P,z, APS]

  • number_phases::Union{Nothing, Int64}: The number of involved phases [default=1]

  • PhaseAbove::Union{Nothing, Vector{Int64}}: Above the chosen value the phase is 1, below it, the value is PhaseBelow

  • PhaseBelow::Union{Nothing, Vector{Int64}}

  • PhaseInside::Union{Nothing, Vector{Int64}}: Phase within the box [use -1 if you don't want to change the phase inside the box]

  • PhaseOutside::Union{Nothing, Vector{Int64}}: Phase outside the box [use -1 if you don't want to change the phase outside the box. If combined with OutsideToInside, all phases that come in are set to PhaseInside]

  • PhaseDirection::String: [BothWays=default; BelowToAbove; AboveToBelow] Direction in which transition works

  • ResetParam::String: [APS] Parameter to reset on particles below PT or within box

  • PTBox_TempType::String: # Temperature condition witin the box [none, constant, linear, halfspace]

  • PTBox_topTemp::Union{Nothing, Float64}: Temp @ top of box [for linear & halfspace]

  • PTBox_botTemp::Union{Nothing, Float64}: Temp @ bottom of box [for linear & halfspace]

  • PTBox_thermalAge::Union{Nothing, Float64}: Thermal age, usually in geo-units [Myrs] [only in case of halfspace]

  • PTBox_cstTemp::Union{Nothing, Float64}: Temp within box [only for constant T]

  • v_box::Union{Nothing, Float64}: [optional] only for NotInAirBox, velocity with which box moves in cm/yr

  • t0_box::Union{Nothing, Float64}: [optional] beginning time of movemen in Myr

  • t1_box::Union{Nothing, Float64}: [optional] end time of movement in Myr

source
LaMEM.LaMEM_Model.ScalingType
Scaling{T} is a structure that contains the scaling info, employed in the current simulation
  • Scaling::Any: Scaling object (as in GeoParams), which can be GEO_units(), NO_units(), or SI_units()
source
LaMEM.LaMEM_Model.SofteningType
Defines strain softening parameters
  • ID::Int64: softening law ID

  • APS1::Float64: Begin of softening, in units of accumulated plastic strain (APS)

  • APS2::Float64: End of softening, in units of accumulated plastic strain (APS)

  • A::Float64: Reduction ratio

  • Lm::Float64: Material length scale (in selected units, e.g. km in geo)

  • APSheal2::Union{Nothing, Float64}: APS when healTau2 activates

  • healTau::Union{Nothing, Float64}: healing timescale parameter [Myr]

  • healTau2::Union{Nothing, Float64}: healing timescale parameter [Myr] starting at APS=APSheal2

source
LaMEM.LaMEM_Model.SolutionParamsType
Structure that contains the LaMEM global solution parameters.
  • gravity::Vector{Float64}: gravitational acceleration vector

  • FSSA::Float64: free surface stabilization parameter [0 - 1]; The value has to be between 0 and 1

  • shear_heat_eff::Float64: shear heating efficiency parameter [0 - 1]

  • Adiabatic_Heat::Float64: Adiabatic Heating activation flag and efficiency. 0.0 - 1.0

  • act_temp_diff::Int64: temperature diffusion activation flag

  • act_therm_exp::Int64: thermal expansion activation flag

  • act_steady_temp::Int64: steady-state temperature initial guess activation flag

  • steady_temp_t::Float64: time for (quasi-)steady-state temperature initial guess

  • nstep_steady::Int64: number of steps for (quasi-)steady-state temperature initial guess (default = 1)

  • act_heat_rech::Int64: recharge heat in anomalous bodies after (quasi-)steady-state temperature initial guess (=2: recharge after every diffusion step of initial guess)

  • init_lith_pres::Int64: sets initial pressure to be the lithostatic pressure (stabilizes compressible setups in the first steps)

  • init_guess::Int64: create an initial guess step (using constant viscosity eta_ref before starting the simulation

  • p_litho_visc::Int64: use lithostatic instead of dynamic pressure for creep laws

  • p_litho_plast::Int64: use lithostatic pressure for plasticity

  • p_lim_plast::Int64: limit pressure at first iteration for plasticity

  • p_shift::Int64: add a constant value [MPa] to the total pressure field, before evaluating plasticity (e.g., when the domain is located @ some depth within the crust)

  • act_p_shift::Int64: pressure shift activation flag (enforce zero pressure on average in the top cell layer); note: this overwrites p_shift above!

  • eta_min::Float64: viscosity lower bound [Pas]

  • eta_max::Float64: viscosity upper limit [Pas]

  • eta_ref::Float64: Reference viscosity (used for the initial guess) [Pas]

  • T_ref::Float64: Reference temperature [C]

  • RUGC::Float64: universal gas constant (you need to change this only for non-dimensional setups)

  • min_cohes::Float64: cohesion lower bound [Pa]

  • min_fric::Float64: friction lower bound [degree]

  • tau_ult::Float64: ultimate yield stress [Pa]

  • rho_fluid::Float64: fluid density for depth-dependent density model

  • gw_level_type::String: ground water level type for pore pressure computation (see below)

  • gw_level::Float64: ground water level at the free surface (if defined)

  • biot::Float64: Biot pressure parameter

  • get_permea::Float64: effective permeability computation activation flag

  • rescal::Float64: stencil rescaling flag (for internal constraints, for example while computing permeability)

  • mfmax::Float64: maximum melt fraction affecting viscosity reduction

  • lmaxit::Int64: maximum number of local rheology iterations

  • lrtol::Float64: local rheology iterations relative tolerance

  • act_dike::Int64: dike activation flag (additonal term in divergence)

  • useTk::Int64: switch to use T-dependent conductivity, 0: not active

  • dikeHeat::Int64: switch to use Behn & Ito heat source in the dike

  • Compute_velocity_gradient::Int64: compute the velocity gradient tensor 1: active, 0: not active. If active, it automatically activates the output in the .pvd file

source
LaMEM.LaMEM_Model.SolverType
Structure that contains the LaMEM solver options
  • SolverType::String: solver employed ["direct" or "multigrid"]

  • DirectSolver::String: mumps/superlu_dist/pastix/umfpack (requires these external PETSc packages to be installed!)

  • DirectPenalty::Float64: penalty parameter [employed if we use a direct solver]

  • MGLevels::Int64: number of MG levels [default=3]

  • MGSweeps::Int64: number of MG smoothening steps per level [default=10]

  • MGSmoother::String: type of smoothener used [chebyshev or jacobi]

  • MGJacobiDamp::Float64: Dampening parameter [only employed for Jacobi smoothener; default=0.6]

  • MGCoarseSolver::String: coarse grid solver if using multigrid ["direct" / "mumps" / "superlu_dist" or "redundant" - more options specifiable through the command-line options -crs_ksp_type & -crs_pc_type]

  • MGRedundantNum::Int64: How many times do we copy the coarse grid? [only employed for redundant solver; default is 4]

  • MGRedundantSolver::String: The coarse grid solver for each of the redundant solves [only employed for redundant; options are "mumps"/"superlu_dist" with default "superlu_dist"]

  • PETSc_options::Vector{String}: List with (optional) PETSc options

source
LaMEM.LaMEM_Model.TimeType
Structure that contains the LaMEM timestepping information. An explanation of the paramneters is given in the struct `Time_info`
  • time_end::Float64: simulation end time

  • dt::Float64: initial time step

  • dt_min::Float64: minimum time step (declare divergence if lower value is attempted)

  • dt_max::Float64: maximum time step

  • dt_out::Float64: output step (output at least at fixed time intervals)

  • inc_dt::Float64: time step increment per time step (fraction of unit)

  • CFL::Float64: CFL (Courant-Friedrichs-Lewy) criterion

  • CFLMAX::Float64: CFL criterion for elasticity

  • nstep_max::Int64: maximum allowed number of steps (lower bound: timeend/dtmax)

  • nstep_out::Int64: save output every n steps; Set this to -1 to deactivate saving output

  • nstep_rdb::Int64: save restart database every n steps

  • num_dt_periods::Int64: number of time stepping periods

  • time_dt_periods::Vector{Int64}: timestamps where timestep should be fixed (first entry has to 0)

  • step_dt_periods::Vector{Float64}: target timesteps ar timestamps above

  • nstep_ini::Int64: save output for n initial steps

  • time_tol::Float64: relative tolerance for time comparisons

source
LaMEM.LaMEM_Model.geom_SphereType
LaMEM geometric primitive `sphere` object
  • phase::Int64: phase

  • radius::Float64: radius of sphere

  • center::Vector{Float64}: center of sphere

  • Temperature::Union{Nothing, String}: optional: Temperature of the sphere. possibilities: [constant, or nothing]

  • cstTemp::Union{Nothing, Float64}: required in case of [constant]: temperature value [in Celcius in case of GEO units]

source
GeophysicalModelGenerator.AddBox!Method
AddBox!(model::Model; xlim=Tuple{2}, [ylim=Tuple{2}], zlim=Tuple{2},
+    )

Creates a LaMEM Model setup.

  • Scaling::Scaling

  • Grid::Grid

  • Time::Any

  • FreeSurface::Any

  • BoundaryConditions::Any

  • SolutionParams::Any

  • Solver::Any

  • ModelSetup::Any

  • Output::Any

  • Materials::Any

source
LaMEM.LaMEM_Model.ModelSetupType
Structure that contains the LaMEM Model Setup and Advection options
  • msetup::String: Setup type - can be geom (phases are assigned from geometric primitives), files (from julia input), polygons (from geomIO input, which requires poly_file to be specified)

  • rand_noise::Int64: add random noise to the particle location

  • rand_noiseGP::Int64: random noise flag, subsequently applied to geometric primitives

  • bg_phase::Int64: background phase ID

  • save_mark::Int64: save marker to disk flag

  • mark_load_file::String: marker input file (extension is .xxxxxxxx.dat), if using msetup=files

  • mark_save_file::String: marker output file (extension is .xxxxxxxx.dat)

  • poly_file::String: polygon geometry file (redundant), if using msetup=polygons

  • temp_file::String: initial temperature file (redundant), if not set on markers

  • advect::String: advection scheme; options=none (no advection); basic (Euler classical implementation [default]); Euler (Euler explicit in time); rk2 (Runge-Kutta 2nd order in space)

  • interp::String: velocity interpolation scheme; options = stag (trilinear interpolation from FDSTAG points), minmod ( MINMOD interpolation to nodes, trilinear interpolation to markers + correction), stagp ( STAG_P empirical approach by T. Gerya)

  • stagp_a::Float64: STAG_P velocity interpolation parameter

  • mark_ctrl::String: marker control type; options are subgrid (default; marker control enforced over fine scale grid), none (none), basic (AVD for cells + corner insertion), and avd (pure AVD for all control volumes)

  • nmark_lim::Vector{Int64}: min/max number per cell (marker control)

  • nmark_avd::Vector{Int64}: x-y-z AVD refinement factors (avd marker control)

  • nmark_sub::Int64: max number of same phase markers per subcell (subgrid marker control)

  • geom_primitives::Vector: Different geometric primitives that can be selected if we msetup=geom; seegeom_Sphere`

source
LaMEM.LaMEM_Model.OutputType
Structure that contains the LaMEM output options
  • out_file_name::Any: output file name

  • out_dir::Any: output directory

  • param_file_name::Any: parameter filename

  • write_VTK_setup::Any: write VTK initial model setup

  • out_pvd::Any: activate writing .pvd file

  • out_phase::Any: dominant phase

  • out_density::Any: density

  • out_visc_total::Any: total (viscoelastoplastic) viscosity

  • out_visc_creep::Any: creep viscosity

  • out_velocity::Any: velocity

  • out_pressure::Any: (dynamic) pressure

  • out_tot_press::Any: total pressure

  • out_eff_press::Any: effective pressure

  • out_over_press::Any: outoverpress

  • out_litho_press::Any: lithospheric pressure

  • out_pore_press::Any: pore pressure

  • out_temperature::Any: temperature

  • out_dev_stress::Any: deviatoric strain rate tensor

  • out_j2_dev_stress::Any: second invariant of deviatoric stress tensor

  • out_strain_rate::Any: deviatoric strain rate tensor

  • out_j2_strain_rate::Any: second invariant of strain rate tensor

  • out_shmax::Any: sh max

  • out_ehmax::Any: eh max

  • out_yield::Any: yield stress

  • out_rel_dif_rate::Any: relative proportion of diffusion creep strainrate

  • out_rel_dis_rate::Any: relative proportion of dislocation creep strainrate

  • out_rel_prl_rate::Any: relative proportion of peierls creep strainrate

  • out_rel_pl_rate::Any: relative proportion of plastic strainrate

  • out_plast_strain::Any: accumulated plastic strain

  • out_plast_dissip::Any: plastic dissipation

  • out_tot_displ::Any: total displacement

  • out_moment_res::Any: momentum residual

  • out_cont_res::Any: continuity residual

  • out_energ_res::Any: energy residual

  • out_melt_fraction::Any: Melt fraction

  • out_fluid_density::Any: fluid density

  • out_conductivity::Any: conductivity

  • out_vel_gr_tensor::Any: velocity gradient tensor

  • out_surf::Any: activate surface output

  • out_surf_pvd::Any: activate writing .pvd file

  • out_surf_velocity::Any: surface velocity

  • out_surf_topography::Any: surface topography

  • out_surf_amplitude::Any: amplitude of topography (=topo-average(topo))

  • out_mark::Any: activate marker output

  • out_mark_pvd::Any: activate writing .pvd file

  • out_avd::Any: activate AVD phase output

  • out_avd_pvd::Any: activate writing .pvd file

  • out_avd_ref::Any: AVD grid refinement factor

  • out_ptr::Any: activate

  • out_ptr_ID::Any: ID of the passive tracers

  • out_ptr_phase::Any: phase of the passive tracers

  • out_ptr_Pressure::Any: interpolated pressure

  • out_ptr_Temperature::Any: temperature

  • out_ptr_MeltFraction::Any: melt fraction computed using P-T of the marker

  • out_ptr_Active::Any: option that highlight the marker that are currently active

  • out_ptr_Grid_Mf::Any: option that allow to store the melt fraction seen within the cell

source
LaMEM.LaMEM_Model.PhaseType
Defines the material properties for each of the phases
  • ID::Union{Nothing, Int64}: Material phase ID

  • Name::Union{Nothing, String}: Description of the phase

  • rho::Union{Nothing, Float64}: Density [kg/m^3]

  • eta::Union{Nothing, Float64}: Linear viscosity [Pas]

  • visID::Union{Nothing, Int64}: material ID for phase visualization (default is ID)

  • diff_prof::Union{Nothing, String}: DIFFUSION creep profile; example: "DryOlivinediffcreep-HirthKohlstedt_2003"

  • disl_prof::Union{Nothing, String}: DISLOCATION creep profile; example: "Granite-Tireletal_2008"

  • peir_prof::Union{Nothing, String}: PEIERLS creep profile; example: "OlivinePeierls-Kameyama1999"

  • rho_n::Union{Nothing, Float64}: depth-dependent density model parameter

  • rho_c::Union{Nothing, Float64}: depth-dependent density model parameter

  • beta::Union{Nothing, Float64}: pressure-dependent density model parameter

  • G::Union{Nothing, Float64}: shear modulus

  • Kb::Union{Nothing, Float64}: bulk modulus

  • E::Union{Nothing, Float64}: Young's modulus

  • nu::Union{Nothing, Float64}: Poisson's ratio

  • Kp::Union{Nothing, Float64}: pressure dependence parameter

  • Bd::Union{Nothing, Float64}: DIFFUSION creep pre-exponential constant

  • Ed::Union{Nothing, Float64}: activation energy

  • Vd::Union{Nothing, Float64}: activation volume

  • eta0::Union{Nothing, Float64}: POWER LAW reference viscosity

  • e0::Union{Nothing, Float64}: reference strain rate

  • Bn::Union{Nothing, Float64}: DISLOCATION creep pre-exponential constant

  • En::Union{Nothing, Float64}: activation energy

  • Vn::Union{Nothing, Float64}: activation volume

  • n::Union{Nothing, Float64}: power law exponent

  • Bp::Union{Nothing, Float64}: PEIERLS creep pre-exponential constant

  • Ep::Union{Nothing, Float64}: activation energy

  • Vp::Union{Nothing, Float64}: activation volume

  • taup::Union{Nothing, Float64}: scaling stress

  • gamma::Union{Nothing, Float64}: approximation parameter

  • q::Union{Nothing, Float64}: stress-dependence parameter

  • eta_fk::Union{Nothing, Float64}: reference viscosity for Frank-Kamenetzky viscosity

  • gamma_fk::Union{Nothing, Float64}: gamma parameter for Frank-Kamenetzky viscosity

  • TRef_fk::Union{Nothing, Float64}: reference Temperature for Frank-Kamenetzky viscosity (if not set it is 0°C)

  • ch::Union{Nothing, Float64}: cohesion

  • fr::Union{Nothing, Float64}: friction angle

  • eta_st::Union{Nothing, Float64}: stabilization viscosity (default is eta_min)

  • rp::Union{Nothing, Float64}: pore-pressure ratio

  • chSoftID::Union{Nothing, Int64}: friction softening law ID

  • frSoftID::Union{Nothing, Int64}: cohesion softening law ID

  • healID::Union{Nothing, Int64}: healing ID, points to healTau in Softening

  • alpha::Union{Nothing, Float64}: thermal expansivity

  • Cp::Union{Nothing, Float64}: specific heat (capacity), J⋅K−1⋅kg−1

  • k::Union{Nothing, Float64}: thermal conductivity

  • A::Union{Nothing, Float64}: radiogenic heat production

  • T::Union{Nothing, Float64}: optional temperature to set within the phase

  • Latent_hx::Union{Nothing, Float64}: optional, used for dike heating, J/kg

  • T_liq::Union{Nothing, Float64}: optional, used for dike heating, liquidus temperature of material, celsius

  • T_sol::Union{Nothing, Float64}: optional, used for dike heating, solidus temperature of material, celsius

  • T_Nu::Union{Nothing, Float64}: default value for thermal conductivity boundary

  • nu_k::Union{Nothing, Float64}: optional parameter, Nusselt number for use with conductivity

  • rho_ph::Union{Nothing, String}: name of the phase diagram you want to use (still needs rho to be defined for the initial guess of pressure)

  • rho_ph_dir::Union{Nothing, String}: in case the phase diagram has a different path provide the path (without the name of the actual PD) here

  • mfc::Union{Nothing, Float64}: melt fraction viscosity correction factor (positive scalar)

source
LaMEM.LaMEM_Model.PhaseTransitionType
Defines phase transitions on markers (that change the Phase ID of a marker depending on some conditions)
  • ID::Int64: Phase_transition law ID

  • Type::String: [Constant, Clapeyron, Box]: Constant - the phase transition occurs only at a fixed value of the parameter; Clapeyron - clapeyron slope

  • Name_Clapeyron::Union{Nothing, Int64}: Type of predefined Clapeyron slope, such as MantleTransition660km

  • PTBox_Bounds::Union{Nothing, Vector{Float64}}: box bound coordinates: [left, right, front, back, bottom, top]

  • BoxVicinity::Union{Nothing, Int64}: 1: only check particles in the vicinity of the box boundaries (2: in all directions)

  • Parameter_transition::String: [T = Temperature, P = Pressure, Depth = z-coord, X=x-coord, Y=y-coord, APS = accumulated plastic strain, MeltFraction, t = time] parameter that triggers the phase transition

  • ConstantValue::Union{Nothing, Float64}: Value of the parameter [unit of T,P,z, APS]

  • number_phases::Union{Nothing, Int64}: The number of involved phases [default=1]

  • PhaseAbove::Union{Nothing, Vector{Int64}}: Above the chosen value the phase is 1, below it, the value is PhaseBelow

  • PhaseBelow::Union{Nothing, Vector{Int64}}

  • PhaseInside::Union{Nothing, Vector{Int64}}: Phase within the box [use -1 if you don't want to change the phase inside the box]

  • PhaseOutside::Union{Nothing, Vector{Int64}}: Phase outside the box [use -1 if you don't want to change the phase outside the box. If combined with OutsideToInside, all phases that come in are set to PhaseInside]

  • PhaseDirection::String: [BothWays=default; BelowToAbove; AboveToBelow] Direction in which transition works

  • ResetParam::String: [APS] Parameter to reset on particles below PT or within box

  • PTBox_TempType::String: # Temperature condition witin the box [none, constant, linear, halfspace]

  • PTBox_topTemp::Union{Nothing, Float64}: Temp @ top of box [for linear & halfspace]

  • PTBox_botTemp::Union{Nothing, Float64}: Temp @ bottom of box [for linear & halfspace]

  • PTBox_thermalAge::Union{Nothing, Float64}: Thermal age, usually in geo-units [Myrs] [only in case of halfspace]

  • PTBox_cstTemp::Union{Nothing, Float64}: Temp within box [only for constant T]

  • v_box::Union{Nothing, Float64}: [optional] only for NotInAirBox, velocity with which box moves in cm/yr

  • t0_box::Union{Nothing, Float64}: [optional] beginning time of movemen in Myr

  • t1_box::Union{Nothing, Float64}: [optional] end time of movement in Myr

source
LaMEM.LaMEM_Model.ScalingType
Scaling{T} is a structure that contains the scaling info, employed in the current simulation
  • Scaling::Any: Scaling object (as in GeoParams), which can be GEO_units(), NO_units(), or SI_units()
source
LaMEM.LaMEM_Model.SofteningType
Defines strain softening parameters
  • ID::Int64: softening law ID

  • APS1::Float64: Begin of softening, in units of accumulated plastic strain (APS)

  • APS2::Float64: End of softening, in units of accumulated plastic strain (APS)

  • A::Float64: Reduction ratio

  • Lm::Float64: Material length scale (in selected units, e.g. km in geo)

  • APSheal2::Union{Nothing, Float64}: APS when healTau2 activates

  • healTau::Union{Nothing, Float64}: healing timescale parameter [Myr]

  • healTau2::Union{Nothing, Float64}: healing timescale parameter [Myr] starting at APS=APSheal2

source
LaMEM.LaMEM_Model.SolutionParamsType
Structure that contains the LaMEM global solution parameters.
  • gravity::Vector{Float64}: gravitational acceleration vector

  • FSSA::Float64: free surface stabilization parameter [0 - 1]; The value has to be between 0 and 1

  • shear_heat_eff::Float64: shear heating efficiency parameter [0 - 1]

  • Adiabatic_Heat::Float64: Adiabatic Heating activation flag and efficiency. 0.0 - 1.0

  • act_temp_diff::Int64: temperature diffusion activation flag

  • act_therm_exp::Int64: thermal expansion activation flag

  • act_steady_temp::Int64: steady-state temperature initial guess activation flag

  • steady_temp_t::Float64: time for (quasi-)steady-state temperature initial guess

  • nstep_steady::Int64: number of steps for (quasi-)steady-state temperature initial guess (default = 1)

  • act_heat_rech::Int64: recharge heat in anomalous bodies after (quasi-)steady-state temperature initial guess (=2: recharge after every diffusion step of initial guess)

  • init_lith_pres::Int64: sets initial pressure to be the lithostatic pressure (stabilizes compressible setups in the first steps)

  • init_guess::Int64: create an initial guess step (using constant viscosity eta_ref before starting the simulation

  • p_litho_visc::Int64: use lithostatic instead of dynamic pressure for creep laws

  • p_litho_plast::Int64: use lithostatic pressure for plasticity

  • p_lim_plast::Int64: limit pressure at first iteration for plasticity

  • p_shift::Int64: add a constant value [MPa] to the total pressure field, before evaluating plasticity (e.g., when the domain is located @ some depth within the crust)

  • act_p_shift::Int64: pressure shift activation flag (enforce zero pressure on average in the top cell layer); note: this overwrites p_shift above!

  • eta_min::Float64: viscosity lower bound [Pas]

  • eta_max::Float64: viscosity upper limit [Pas]

  • eta_ref::Float64: Reference viscosity (used for the initial guess) [Pas]

  • T_ref::Float64: Reference temperature [C]

  • RUGC::Float64: universal gas constant (you need to change this only for non-dimensional setups)

  • min_cohes::Float64: cohesion lower bound [Pa]

  • min_fric::Float64: friction lower bound [degree]

  • tau_ult::Float64: ultimate yield stress [Pa]

  • rho_fluid::Float64: fluid density for depth-dependent density model

  • gw_level_type::String: ground water level type for pore pressure computation (see below)

  • gw_level::Float64: ground water level at the free surface (if defined)

  • biot::Float64: Biot pressure parameter

  • get_permea::Float64: effective permeability computation activation flag

  • rescal::Float64: stencil rescaling flag (for internal constraints, for example while computing permeability)

  • mfmax::Float64: maximum melt fraction affecting viscosity reduction

  • lmaxit::Int64: maximum number of local rheology iterations

  • lrtol::Float64: local rheology iterations relative tolerance

  • act_dike::Int64: dike activation flag (additonal term in divergence)

  • useTk::Int64: switch to use T-dependent conductivity, 0: not active

  • dikeHeat::Int64: switch to use Behn & Ito heat source in the dike

  • Compute_velocity_gradient::Int64: compute the velocity gradient tensor 1: active, 0: not active. If active, it automatically activates the output in the .pvd file

source
LaMEM.LaMEM_Model.SolverType
Structure that contains the LaMEM solver options
  • SolverType::String: solver employed ["direct" or "multigrid"]

  • DirectSolver::String: mumps/superlu_dist/pastix/umfpack (requires these external PETSc packages to be installed!)

  • DirectPenalty::Float64: penalty parameter [employed if we use a direct solver]

  • MGLevels::Int64: number of MG levels [default=3]

  • MGSweeps::Int64: number of MG smoothening steps per level [default=10]

  • MGSmoother::String: type of smoothener used [chebyshev or jacobi]

  • MGJacobiDamp::Float64: Dampening parameter [only employed for Jacobi smoothener; default=0.6]

  • MGCoarseSolver::String: coarse grid solver if using multigrid ["direct" / "mumps" / "superlu_dist" or "redundant" - more options specifiable through the command-line options -crs_ksp_type & -crs_pc_type]

  • MGRedundantNum::Int64: How many times do we copy the coarse grid? [only employed for redundant solver; default is 4]

  • MGRedundantSolver::String: The coarse grid solver for each of the redundant solves [only employed for redundant; options are "mumps"/"superlu_dist" with default "superlu_dist"]

  • PETSc_options::Vector{String}: List with (optional) PETSc options

source
LaMEM.LaMEM_Model.TimeType
Structure that contains the LaMEM timestepping information. An explanation of the paramneters is given in the struct `Time_info`
  • time_end::Float64: simulation end time

  • dt::Float64: initial time step

  • dt_min::Float64: minimum time step (declare divergence if lower value is attempted)

  • dt_max::Float64: maximum time step

  • dt_out::Float64: output step (output at least at fixed time intervals)

  • inc_dt::Float64: time step increment per time step (fraction of unit)

  • CFL::Float64: CFL (Courant-Friedrichs-Lewy) criterion

  • CFLMAX::Float64: CFL criterion for elasticity

  • nstep_max::Int64: maximum allowed number of steps (lower bound: timeend/dtmax)

  • nstep_out::Int64: save output every n steps; Set this to -1 to deactivate saving output

  • nstep_rdb::Int64: save restart database every n steps

  • num_dt_periods::Int64: number of time stepping periods

  • time_dt_periods::Vector{Int64}: timestamps where timestep should be fixed (first entry has to 0)

  • step_dt_periods::Vector{Float64}: target timesteps ar timestamps above

  • nstep_ini::Int64: save output for n initial steps

  • time_tol::Float64: relative tolerance for time comparisons

source
LaMEM.LaMEM_Model.geom_SphereType
LaMEM geometric primitive `sphere` object
  • phase::Int64: phase

  • radius::Float64: radius of sphere

  • center::Vector{Float64}: center of sphere

  • Temperature::Union{Nothing, String}: optional: Temperature of the sphere. possibilities: [constant, or nothing]

  • cstTemp::Union{Nothing, Float64}: required in case of [constant]: temperature value [in Celcius in case of GEO units]

source
GeophysicalModelGenerator.AddBox!Method
AddBox!(model::Model; xlim=Tuple{2}, [ylim=Tuple{2}], zlim=Tuple{2},
         Origin=nothing, StrikeAngle=0, DipAngle=0,
         phase = ConstantPhase(1),
-        T=nothing )

Adds a box with phase & temperature structure to a 3D model setup. This simplifies creating model geometries in geodynamic models See the documentation of the GMG routine

source
GeophysicalModelGenerator.AddCylinder!Method
AddCylinder!(model::Model;                                      # required input
+        T=nothing )

Adds a box with phase & temperature structure to a 3D model setup. This simplifies creating model geometries in geodynamic models See the documentation of the GMG routine

source
GeophysicalModelGenerator.AddCylinder!Method
AddCylinder!(model::Model;                                      # required input
                 base=Tuple{3}, cap=Tuple{3}, radius=Tuple{1},   # center and radius of the sphere
                 phase = ConstantPhase(1),                       # Sets the phase number(s) in the sphere
-                T=nothing )                                     # Sets the thermal structure (various fucntions are available)

See the documentation of the GMG routine

source
GeophysicalModelGenerator.AddEllipsoid!Method
AddEllipsoid!(model::Model;                                 # required input
                 cen=Tuple{3}, axes=Tuple{3},                # center and semi-axes of the ellpsoid
                 Origin=nothing, StrikeAngle=0, DipAngle=0,  # origin & dip/strike
                 phase = ConstantPhase(1),                   # Sets the phase number(s) in the box
-                T=nothing )

See the documentation of the GMG routine

source
LaMEM.IO_functions.Read_LaMEM_simulationMethod
Timestep, FileNames, Time = Read_LaMEM_simulation(model::Model; phase=false, surf=false, passive_tracers=false)

Reads a LaMEM simulation as specified in model and returns the timesteps, times and filenames of that simulation once it is finished.

source
LaMEM.IO_functions.Read_LaMEM_timestepFunction
data, time = Read_LaMEM_timestep(model::Model, TimeStep::Int64=0; fields=nothing, phase=false, surf=false, last=true)

Reads a specific Timestep from a simulation specified in model

source
LaMEM.LaMEM_Model.AboveSurface!Method
AboveSurface!(model::Model, DataSurface_Cart::CartData; phase::Int64=nothing, T::Number=nothing)

Sets the Temp or Phases above the surface DataSurface_Cart to a constant value.

source
LaMEM.LaMEM_Model.BelowSurface!Method
BelowSurface!(model::Model, DataSurface_Cart::CartData; phase::Union{Int64,Nothing}=nothing, T::Union{Number,Nothing}=nothing)

Sets the Temp or Phases below the surface DataSurface_Cart to a constant value.

source
LaMEM.LaMEM_Model.Write_LaMEM_InputFileMethod
Write_LaMEM_InputFile(io, d::Grid)

This writes grid info to a LaMEM input file

Example

julia> d=LaMEM.Grid(coord_x=[0.0, 0.7, 0.8, 1.0], bias_x=[0.3,1.0,3.0], nel_x=[10,4,2])
+                T=nothing )

See the documentation of the GMG routine

source
LaMEM.IO_functions.Read_LaMEM_simulationMethod
Timestep, FileNames, Time = Read_LaMEM_simulation(model::Model; phase=false, surf=false, passive_tracers=false)

Reads a LaMEM simulation as specified in model and returns the timesteps, times and filenames of that simulation once it is finished.

source
LaMEM.IO_functions.Read_LaMEM_timestepFunction
data, time = Read_LaMEM_timestep(model::Model, TimeStep::Int64=0; fields=nothing, phase=false, surf=false, last=true)

Reads a specific Timestep from a simulation specified in model

source
LaMEM.LaMEM_Model.AboveSurface!Method
AboveSurface!(model::Model, DataSurface_Cart::CartData; phase::Int64=nothing, T::Number=nothing)

Sets the Temp or Phases above the surface DataSurface_Cart to a constant value.

source
LaMEM.LaMEM_Model.BelowSurface!Method
BelowSurface!(model::Model, DataSurface_Cart::CartData; phase::Union{Int64,Nothing}=nothing, T::Union{Number,Nothing}=nothing)

Sets the Temp or Phases below the surface DataSurface_Cart to a constant value.

source
LaMEM.LaMEM_Model.Write_LaMEM_InputFileMethod
Write_LaMEM_InputFile(io, d::Grid)

This writes grid info to a LaMEM input file

Example

julia> d=LaMEM.Grid(coord_x=[0.0, 0.7, 0.8, 1.0], bias_x=[0.3,1.0,3.0], nel_x=[10,4,2])
 julia> io = open("test.dat","w")
 julia> LaMEM.Write_LaMEM_InputFile(io, d)
-julia> close(io)
source
LaMEM.LaMEM_Model.add_geom!Method
add_geom!(model::Model, geom_object)

This adds an internal geometric primitive object geom_object to the LaMEM Model Setup model.

Currently available primitive geom objects are:

  • geom_Sphere
source
LaMEM.LaMEM_Model.add_petsc!Method
add_petsc!(model::Model, option::String)

Adds one or more PETSc options to the model

Example

julia> d = Model()
-julia> add_petsc!(d,"-snes_npicard 3")
source
LaMEM.LaMEM_Model.add_topography!Method
add_topography!(model::Model, topography::CartData; surf_air_phase=0, surf_topo_file="topography.txt", open_top_bound=1,  surf_level=0.0)

Adds the topography surface to the model

source
LaMEM.LaMEM_Model.create_initialsetupFunction
create_initialsetup(model::Model, cores::Int64=1, args::String="")

Creates the initial model setup of LaMEM from model, which includes:

  • Writing the LaMEM (*.dat) input file
  • Write the VTK file (if requested when model.Output.write_VTK_setup=true)
  • Write the marker files to disk (if model.ModelSetup.msetup="files")
source
LaMEM.LaMEM_Model.cross_sectionFunction
data_tuple, axes_str = cross_section(model::LaMEM.Model, field=:phases; x=nothing, y=nothing, z=nothing)

This creates a cross-section through the initial model setup & returns a 2D array

source
LaMEM.LaMEM_Model.cross_sectionFunction
Cross = cross_section(cart::CartData, field::Symbol =:phase; x=nothing, y=nothing, z=nothing)

Creates a cross-section through the data and returns x,z coordinates

source
LaMEM.LaMEM_Model.replace_phase!Method
replace_phase!(model::Model, phase_new::Phase; ID::Int64=nothing, Name::String=nothing)

This replaces a phase within a LaMEM Model Setup model with phase_new either based on its Name or ID. Note that it is expected that only one such phase is present in the current setup.

source
LaMEM.LaMEM_Model.set_airMethod
set_air(; Name="air", ID=0, rho=1, alpha=nothing, eta=1e17, G=nothing, nu=nothing, fr=nothing, ch=nothing, k=30,Cp=1000)

Sets an air phase, with high conductivity

source
LaMEM.Run.run_lamemFunction
run_lamem(model::Model, cores::Int64=1, args:String=""; wait=true)

Performs a LaMEM run for the parameters that are specified in model

source
+julia> close(io)
source
LaMEM.LaMEM_Model.add_geom!Method
add_geom!(model::Model, geom_object)

This adds an internal geometric primitive object geom_object to the LaMEM Model Setup model.

Currently available primitive geom objects are:

  • geom_Sphere
source
LaMEM.LaMEM_Model.add_petsc!Method
add_petsc!(model::Model, option::String)

Adds one or more PETSc options to the model

Example

julia> d = Model()
+julia> add_petsc!(d,"-snes_npicard 3")
source
LaMEM.LaMEM_Model.add_topography!Method
add_topography!(model::Model, topography::CartData; surf_air_phase=0, surf_topo_file="topography.txt", open_top_bound=1,  surf_level=0.0)

Adds the topography surface to the model

source
LaMEM.LaMEM_Model.create_initialsetupFunction
create_initialsetup(model::Model, cores::Int64=1, args::String="")

Creates the initial model setup of LaMEM from model, which includes:

  • Writing the LaMEM (*.dat) input file
  • Write the VTK file (if requested when model.Output.write_VTK_setup=true)
  • Write the marker files to disk (if model.ModelSetup.msetup="files")
source
LaMEM.LaMEM_Model.cross_sectionFunction
data_tuple, axes_str = cross_section(model::LaMEM.Model, field=:phases; x=nothing, y=nothing, z=nothing)

This creates a cross-section through the initial model setup & returns a 2D array

source
LaMEM.LaMEM_Model.cross_sectionFunction
Cross = cross_section(cart::CartData, field::Symbol =:phase; x=nothing, y=nothing, z=nothing)

Creates a cross-section through the data and returns x,z coordinates

source
LaMEM.LaMEM_Model.replace_phase!Method
replace_phase!(model::Model, phase_new::Phase; ID::Int64=nothing, Name::String=nothing)

This replaces a phase within a LaMEM Model Setup model with phase_new either based on its Name or ID. Note that it is expected that only one such phase is present in the current setup.

source
LaMEM.LaMEM_Model.set_airMethod
set_air(; Name="air", ID=0, rho=1, alpha=nothing, eta=1e17, G=nothing, nu=nothing, fr=nothing, ch=nothing, k=30,Cp=1000)

Sets an air phase, with high conductivity

source
LaMEM.Run.run_lamemFunction
run_lamem(model::Model, cores::Int64=1, args:String=""; wait=true)

Performs a LaMEM run for the parameters that are specified in model

source
diff --git a/dev/man/installation/index.html b/dev/man/installation/index.html index 74e484d..0a48fd2 100644 --- a/dev/man/installation/index.html +++ b/dev/man/installation/index.html @@ -3,4 +3,4 @@ pkg>add LaMEM

which will download the binaries along with PETSc and mpiexec for your system.

You can test if it works on your machine with

pkg> test LaMEM

Running LaMEM from the julia REPL

Running LaMEM from within julia can be done with the run_lamem function:

LaMEM.Run.run_lamemFunction
run_lamem(ParamFile::String, cores::Int64=1, args:String=""; wait=true, deactivate_multithreads=true)

This starts a LaMEM simulation, for using the parameter file ParamFile on cores number of cores. Optional additional command-line parameters can be specified with args.

Example:

You can call LaMEM with:

julia> using LaMEM
 julia> ParamFile="../../input_models/BuildInSetups/FallingBlock_Multigrid.dat";
 julia> run_lamem(ParamFile)

Do the same on 2 cores with a command-line argument as:

julia> ParamFile="../../input_models/BuildInSetups/FallingBlock_Multigrid.dat";
-julia> run_lamem(ParamFile, 2, "-nstep_max = 1")
source
run_lamem(model::Model, cores::Int64=1, args:String=""; wait=true)

Performs a LaMEM run for the parameters that are specified in model

source

Running LaMEM from outside julia

If you, for some reason, do not want to run LaMEM through julia but instead directly from the terminal or powershell, you will have to add the required dynamic libraries and executables. Do this with:

LaMEM.Run.show_paths_LaMEMFunction
show_paths_LaMEM()

The downloaded LaMEM binaries can also be called from outside julia (directly from the terminal). In that case, you will need to set load correct dynamic libraries (such as PETSc) and call the correct binaries.

This function shows this for your system.

source
+julia> run_lamem(ParamFile, 2, "-nstep_max = 1")source
run_lamem(model::Model, cores::Int64=1, args:String=""; wait=true)

Performs a LaMEM run for the parameters that are specified in model

source

Running LaMEM from outside julia

If you, for some reason, do not want to run LaMEM through julia but instead directly from the terminal or powershell, you will have to add the required dynamic libraries and executables. Do this with:

LaMEM.Run.show_paths_LaMEMFunction
show_paths_LaMEM()

The downloaded LaMEM binaries can also be called from outside julia (directly from the terminal). In that case, you will need to set load correct dynamic libraries (such as PETSc) and call the correct binaries.

This function shows this for your system.

source
diff --git a/dev/man/installation_HPC/index.html b/dev/man/installation_HPC/index.html index 9b584c8..515112e 100644 --- a/dev/man/installation_HPC/index.html +++ b/dev/man/installation_HPC/index.html @@ -10,4 +10,4 @@ julia> MPI.Get_library_version() "MPIwrapper 2.10.3, using MPIABI 2.9.0, wrapping:\nOpen MPI v4.1.4, package: Open MPI boris@Pluton Distribution, ident: 4.1.4, repo rev: v4.1.4, May 26, 2022"

After this, restart julia (this only needs to be done once, next time all is fine).

julia> using MPI,LaMEM
 julia> LaMEM.LaMEM_jll.host_platform
-Linux x86_64 {cxxstring_abi=cxx11, julia_version=1.8.1, libc=glibc, libgfortran_version=5.0.0, mpi=mpitrampoline}

At this stage the precompiled version of LaMEM should be useable on that system.

+Linux x86_64 {cxxstring_abi=cxx11, julia_version=1.8.1, libc=glibc, libgfortran_version=5.0.0, mpi=mpitrampoline}

At this stage the precompiled version of LaMEM should be useable on that system.

diff --git a/dev/man/juliasetup_LaPalma/index.html b/dev/man/juliasetup_LaPalma/index.html index 0a3b6f6..e72c5b0 100644 --- a/dev/man/juliasetup_LaPalma/index.html +++ b/dev/man/juliasetup_LaPalma/index.html @@ -99,4 +99,4 @@ Length : 1000. [m] Viscosity : 1e+20 [Pa*s] Stress : 1e+09 [Pa] --------------------------------------------------------------------------- +-------------------------------------------------------------------------- diff --git a/dev/man/juliasetup_example_sphere/index.html b/dev/man/juliasetup_example_sphere/index.html index d4de431..3257330 100644 --- a/dev/man/juliasetup_example_sphere/index.html +++ b/dev/man/juliasetup_example_sphere/index.html @@ -92,4 +92,4 @@ "markers" "output.dat" "output.pvd"

And you can open output.pvd with paraview. If your system recogizes that *.pvd files should be opened with paraview, you can do that with

julia> ;
-shell> open output.pvd

Otherwise, start paraview manually and open the file.

+shell> open output.pvd

Otherwise, start paraview manually and open the file.

diff --git a/dev/man/juliasetup_pluto/index.html b/dev/man/juliasetup_pluto/index.html index b762c48..7a39f74 100644 --- a/dev/man/juliasetup_pluto/index.html +++ b/dev/man/juliasetup_pluto/index.html @@ -1,4 +1,4 @@ Notebooks · LaMEM.jl

Using Pluto or Jupyter notebooks

Pluto

You can also run LaMEM directly using Pluto notebooks:

julia> using Pluto
 julia> Pluto.run()

we have provided examples in the notebooks directory of the LaMEM.jl package.

Jupyter

And for the ones of you that are more used to Jupyter notebooks, we also provide an example. Note that this will require you to install the required packages in julia first and use the IJulia package:

julia> using IJulia
-julia> notebook()
+julia> notebook() diff --git a/dev/man/juliasetups/index.html b/dev/man/juliasetups/index.html index 9ce9346..54effdc 100644 --- a/dev/man/juliasetups/index.html +++ b/dev/man/juliasetups/index.html @@ -77,4 +77,4 @@ y ϵ [-10.0 : 0.0] z ϵ [-10.0 : 0.0] Phases : range ϵ [0 - 1] - Temp : range ϵ [0.0 - 0.0]

Running a model is very simple:

julia> run_lamem(model,1)

More examples

More examples can be found on the left hand side menu.

+ Temp : range ϵ [0.0 - 0.0]

Running a model is very simple:

julia> run_lamem(model,1)

More examples

More examples can be found on the left hand side menu.

diff --git a/dev/man/listfunctions/index.html b/dev/man/listfunctions/index.html index af62369..43322a9 100644 --- a/dev/man/listfunctions/index.html +++ b/dev/man/listfunctions/index.html @@ -1,7 +1,7 @@ -List of functions · LaMEM.jl

List of all functions

These are all functions that are available in the package, which can roughly be divided into two groups (running & reading LaMEM)

Running LaMEM

LaMEM.Run.remove_popup_messages_macMethod
remove_popup_messages_mac()

On a Mac with firewall enabled, running LaMEM will result in a popup window that says: "Accept incoming connections" which you should Allow or Deny. This is a bit annoying, so this julia script fixes that. Note that you must have administrator rights on your machine as we need to run "sudo"

Run this script from the terminal with

julia> remove_popup_messages_mac()

You need to do this once (every time a new version is installed)

source
LaMEM.Run.run_lamemFunction
run_lamem(ParamFile::String, cores::Int64=1, args:String=""; wait=true, deactivate_multithreads=true)

This starts a LaMEM simulation, for using the parameter file ParamFile on cores number of cores. Optional additional command-line parameters can be specified with args.

Example:

You can call LaMEM with:

julia> using LaMEM
+List of functions · LaMEM.jl

List of all functions

These are all functions that are available in the package, which can roughly be divided into two groups (running & reading LaMEM)

Running LaMEM

LaMEM.Run.remove_popup_messages_macMethod
remove_popup_messages_mac()

On a Mac with firewall enabled, running LaMEM will result in a popup window that says: "Accept incoming connections" which you should Allow or Deny. This is a bit annoying, so this julia script fixes that. Note that you must have administrator rights on your machine as we need to run "sudo"

Run this script from the terminal with

julia> remove_popup_messages_mac()

You need to do this once (every time a new version is installed)

source
LaMEM.Run.run_lamemFunction
run_lamem(ParamFile::String, cores::Int64=1, args:String=""; wait=true, deactivate_multithreads=true)

This starts a LaMEM simulation, for using the parameter file ParamFile on cores number of cores. Optional additional command-line parameters can be specified with args.

Example:

You can call LaMEM with:

julia> using LaMEM
 julia> ParamFile="../../input_models/BuildInSetups/FallingBlock_Multigrid.dat";
 julia> run_lamem(ParamFile)

Do the same on 2 cores with a command-line argument as:

julia> ParamFile="../../input_models/BuildInSetups/FallingBlock_Multigrid.dat";
-julia> run_lamem(ParamFile, 2, "-nstep_max = 1")
source
LaMEM.Run.run_lamem_save_gridFunction
ProcessorPartFile = run_lamem_save_grid(ParamFile::String, cores::Int64=1; verbose=true)

This calls LaMEM simulation, for using the parameter file ParamFile and creates processor partitioning file "ProcessorPartitioningcorescpuX.Y.Z.bin" for cores number of cores.

Example:

julia> using LaMEM
+julia> run_lamem(ParamFile, 2, "-nstep_max = 1")
source
LaMEM.Run.run_lamem_save_gridFunction
ProcessorPartFile = run_lamem_save_grid(ParamFile::String, cores::Int64=1; verbose=true)

This calls LaMEM simulation, for using the parameter file ParamFile and creates processor partitioning file "ProcessorPartitioningcorescpuX.Y.Z.bin" for cores number of cores.

Example:

julia> using LaMEM
 julia> ParamFile="../../input_models/BuildInSetups/FallingBlock_Multigrid.dat";
-julia> ProcessorPartFile = run_lamem_save_grid(ParamFile, 2)
source
LaMEM.Run.show_paths_LaMEMMethod
show_paths_LaMEM()

The downloaded LaMEM binaries can also be called from outside julia (directly from the terminal). In that case, you will need to set load correct dynamic libraries (such as PETSc) and call the correct binaries.

This function shows this for your system.

source

Reading LaMEM output back into julia

```@autodocs Modules = [LaMEM.IO_functions]

+julia> ProcessorPartFile = run_lamem_save_grid(ParamFile, 2)
source
LaMEM.Run.show_paths_LaMEMMethod
show_paths_LaMEM()

The downloaded LaMEM binaries can also be called from outside julia (directly from the terminal). In that case, you will need to set load correct dynamic libraries (such as PETSc) and call the correct binaries.

This function shows this for your system.

source

Reading LaMEM output back into julia

```@autodocs Modules = [LaMEM.IO_functions]

diff --git a/dev/man/readtimesteps/index.html b/dev/man/readtimesteps/index.html index c646ff3..b6d2521 100644 --- a/dev/man/readtimesteps/index.html +++ b/dev/man/readtimesteps/index.html @@ -27,4 +27,4 @@ z ϵ [ 0.0 : 1.0] fields : (:phase, :visc_total, :velocity) attributes: ["note"] -, [6.729703]) +, [6.729703]) diff --git a/dev/man/runlamem/index.html b/dev/man/runlamem/index.html index 7796be3..8d300c3 100644 --- a/dev/man/runlamem/index.html +++ b/dev/man/runlamem/index.html @@ -27,4 +27,4 @@ Output every [n] steps : 1 Output [n] initial steps : 1 --------------------------------------------------------------------------

The last parameter are optional PETSc command-line options. By default it runs on one processor.

Please note that you will have to be in the correct directory or indicate where that directory is. If you are in a different directory, the easiest way to change to the correct one is by using the changefolder function (on Windows and Mac):

julia> changefolder()

Alternatively, you can use the build-in terminal/shell in julia, which you can access with:

julia>;
-shell>cd ~/LaMEM/input_models/BuildInSetups/

use the Backspace key to return to the julia REPL.

Once you have performed a simulation, you can look at the results by opening the *.pvd files with Paraview. In this example, that would be FB_multigrid.pvd and FB_multigrid_phase.pvd.

+shell>cd ~/LaMEM/input_models/BuildInSetups/

use the Backspace key to return to the julia REPL.

Once you have performed a simulation, you can look at the results by opening the *.pvd files with Paraview. In this example, that would be FB_multigrid.pvd and FB_multigrid_phase.pvd.

diff --git a/dev/search/index.html b/dev/search/index.html index 9efb3cf..28244f9 100644 --- a/dev/search/index.html +++ b/dev/search/index.html @@ -1,2 +1,2 @@ -Search · LaMEM.jl

Loading search...

    +Search · LaMEM.jl

    Loading search...