![]() add_physical (, "BOUND" ) # Remove duplicate entities geo. add_polygon ( bound_bot_pts, mesh_size = lc ) # Define materials geo. add_polygon ( bound_top_pts, mesh_size = lc ) bound_bot = geo. add_polygon ( bound_right_pts, mesh_size = lc ) bound_top = geo. add_polygon ( basaq_right_pts, mesh_size = 2.0 * lc ) bound_right = geo. add_polygon ( uppaq_right_pts, mesh_size = 2.0 * lc ) basaq_right = geo. add_polygon ( capro_bot_right_pts, mesh_size = 0.75 * lc ) uppaq_right = geo. add_polygon ( capro_top_right_pts, mesh_size = 0.75 * lc ) capro_bot_right = geo. add_polygon ( cenaq_right_pts, mesh_size = 0.75 * lc ) capro_top_right = geo. add_polygon ( basaq_left_pts, mesh_size = 2.0 * lc ) cenaq_right = geo. add_polygon ( uppaq_left_pts, mesh_size = 2.0 * lc ) basaq_left = geo. add_polygon ( capro_bot_left_pts, mesh_size = 0.2 * lc ) uppaq_left = geo. add_polygon ( capro_top_left_pts, mesh_size = 0.2 * lc ) capro_bot_left = geo. add_polygon ( cenaq_left_pts, mesh_size = 0.1 * lc ) capro_top_left = geo. add_polygon ( fault_pts, mesh_size = 0.1 * lc ) cenaq_left = geo. Geometry () as geo : # Define polygons fault = geo. This is because Gmsh keeps the first node defined in the geometry in case it detects duplicated nodes. Note that layers are defined such that their characteristic lengths are increasing. To refine the mesh in the injection zone, the characteristic length of each layer entity is increased the farther we get from the injection point. Once all the points have been created, we can now generate the geometry, assign rock types/materials as Gmsh physical properties, and generate the mesh. Similarly to the fault entity, boundary entities are segmented to ensure conformity of the final mesh.īound_right_pts =, ,, ,, ,, , ] bound_top_pts =, ,, ,, ,, ,, ] bound_bot_pts =, ,, ,, ,, ,, ] Thus, physical boundary elements must be defined at the top, right and bottom sides of the model. In this sample problem, a no-flow boundary condition is imposed on the left side of the model (default in TOUGH), and Dirichlet boundary conditions are imposed elsewhere. Likewise, we also define the aquifer located at the right side of the fault.Ĭenaq_right_pts =, ,, , ] capro_top_right_pts =, ,, , ] capro_bot_right_pts =, ,, , ] uppaq_right_pts =, ,, , ] basaq_right_pts =, ,, , ] Print( "nstraint_objects = ", self.Cenaq_left_pts =, ,, , ] capro_top_left_pts =, ,, , ] capro_bot_left_pts =, ,, , ] uppaq_left_pts =, ,, , ] basaq_left_pts =, ,, , ] ele_length_map = ` has empty References'. """ collect mesh setting, write mesher input, run the mesher processĭef _init_( self, _mesh_obj, analysis = None): meshtools as FemMeshTools # FemMeshTools was renamed to "femmesh/meshtools.py", on Feb 2018 _author_ = "Bernd Hahnebach, Qingfeng Xia" # * License along with this program if not, write to the Free Software * # * You should have received a copy of the GNU Library General Public * # * GNU Library General Public License for more details. # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ![]() # * but WITHOUT ANY WARRANTY without even the implied warranty of * ![]() # * This program is distributed in the hope that it will be useful, * # * for detail see the LICENCE text file. # * the License, or (at your option) any later version. # * as published by the Free Software Foundation either version 2 of * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * This program is free software you can redistribute it and/or modify * # * Copyright (c) 2016 - Bernd Hahnebach *
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |