****************************** * * Carl W. Gable * gable@lanl.gov * LaGriT Control File * http://lagrit.lanl.gov * http://meshing.lanl.gov * ****************************** * * Build tet meshes * and insert a fault plane. * * Carl Gable * gable@lanl.gov * * infile build_background_mesh.mlgi * * * This will build a set of triangulated faults and return * with the faults in a mesh object named: * define / FLT_SET / cmo_tri1 * infile build_fault_set.mlgi * * * Find where the tet mesh is close to the fault plane. * compute / distance_field / CMO_NAME / cmo_tri1 / dfield * dump / gmv / dfield.gmv / CMO_NAME cmo / select / CMO_NAME pset / prefine / attribute / dfield / 1 0 0 / 3000. / lt eltset / erefine / inclusive / pset get prefine refine / eltset / eltset get erefine rmpoint / compress eltset / erefine / delete pset / prefine / delete dump / gmv / refine1.gmv / CMO_NAME cmo / DELATT / CMO_NAME / dfield compute / distance_field / CMO_NAME / cmo_tri1 / dfield pset / prefine / attribute / dfield / 1 0 0 / 1500. / lt eltset / erefine / inclusive / pset get prefine refine / eltset / eltset get erefine rmpoint / compress dump / gmv / refine2.gmv / CMO_NAME * * Remove nodes that are close to the fault planes. * intersect_elements / CMO_NAME / cmo_tri1 / in_flt eltset / e_in_flt / in_flt / gt / 0 rmpoint / element / eltset get e_in_flt rmpoint / compress * * Intersect can leave behind some nodes that are very very close * to the fault plane. Use an alternative method to delete the * nodes close to the plane. * cmo / copy / cmo_tmp_tri / cmo_tri1 cmo / select / cmo_tmp_tri refine2d refine2d cmo / DELATT / CMO_NAME / dfield compute / distance_field / CMO_NAME / cmo_tmp_tri / dfield cmo / delete / cmo_tmp_tri cmo / status / brief cmo / select / CMO_NAME pset / pdel / attribute / dfield / 1 0 0 / 100. / lt eltset / edel / inclusive / pset get pdel rmpoint / element / eltset get edel rmpoint / compress eltset / edel / delete dump / gmv / rmpoint.gmv / CMO_NAME * * Now put the two point distributions together and connect to form tets. * cmo / create / cmo_tet2 / / / tet copypts / cmo_tet2 / CMO_NAME copypts / cmo_tet2 / cmo_tri1 cmo / setatt / CMO_NAME / imt / 1 0 0 / 1 cmo / setatt / CMO_NAME / itp / 1 0 0 / 0 connect / noadd rmpoint / compress dump / gmv / connect.gmv / cmo_tet2 cmo / DELATT / CMO_NAME / dfield compute / distance_field / cmo_tet2 / cmo_tri1 / dfield dump / gmv / tets_w_fault.gmv / cmo_tet2 * * Identify elements ABOVE and BELOW the fault plane. * The algorithm tests * surface / s_flt1 / reflect / sheet / cmo_tri1 cmo / select / cmo_tet2 region / r_above / ge s_flt1 region / r_below / lt s_flt1 eltset / e_below / region / r_below cmo / addatt / cmo_tet2 / id_block / vint / scalar / nelements cmo / setatt / cmo_tet2 / id_block / 1 0 0 / 1 cmo / setatt / cmo_tet2 / id_block / eltset get e_below / 2 quality / aspect / y dump / gmv / tets_id_flt.gmv / cmo_tet2 finish