from varglas.data.data_factory import DataFactory from varglas.mesh.mesh_factory import MeshFactory from varglas.utilities import DataInput from varglas.model import Model from varglas.solvers import SteadySolver, TransientSolver from varglas.physical_constants import IceParameters from varglas.helper import default_nonlin_solver_params from fenics import set_log_active, parameters set_log_active(True) thklim = 50.0 vara = DataFactory.get_searise(thklim=thklim) mesh = MeshFactory.get_greenland_coarse() dsr = DataInput(vara, mesh=mesh) S = dsr.get_spline_expression('S') B = dsr.get_spline_expression('B') SMB = dsr.get_spline_expression('adot') T_s = dsr.get_spline_expression('T') q_geo = dsr.get_spline_expression('q_geo') U_ob = dsr.get_spline_expression('U_ob') Tn = vara['Tn']['map_data'] # create the model : model = Model() model.set_mesh(mesh) model.set_geometry(S, B, deform=True) model.set_parameters(IceParameters())
from varglas.meshing import MeshGenerator, MeshRefiner from varglas.io import DataInput from varglas.data.data_factory import DataFactory from pylab import * from scipy.interpolate import interp2d #=============================================================================== # data preparation : out_dir = 'dump/meshes/' # collect the raw data : bamber = DataFactory.get_bamber() rignot = DataFactory.get_rignot() searise = DataFactory.get_searise() gimp = DataFactory.get_gimp() # create data objects to use with varglas : dbm = DataInput(bamber, gen_space=False) drg = DataInput(rignot, gen_space=False) dsr = DataInput(searise, gen_space=False) dgm = DataInput(gimp, gen_space=False) drg.set_data_max('U_ob', boundary=1000.0, val=1000.0) drg.set_data_min('U_ob', boundary=0.0, val=0.0) #=============================================================================== # form field from which to refine : ## antarctica :: Info : 4449632 vertices 25902918 elements #drg.data['ref'] = (0.02 + 1/(1 + drg.data['U_ob'])) * 50000 dbm.data['ref'] = 5 * dbm.data['H'].copy() dbm.data['ref'][dbm.data['ref'] < 5000.0] = 5000.0