3D-Crack的一個(gè)簡(jiǎn)單的彈性例子,算J積分和裂紋擴(kuò)展的

我是必葫蘆畫瓢作的,不當(dāng)之處,請(qǐng)多多指教
拿出來大家一起學(xué)習(xí)吧
呵呵












所用軟件:MSC.Marc2005

以下為menten源代碼:


*define h 4
*define b 8
*define l 15
*define a1 1.5
*define a2 1
*define a2 1.5
*define a1 1
*define force -5e5
*define moment -1e5
*define nexpand 22
*define da 0.5
*add_solids
0 0 0 b h -l
*set_solid_type cylinder
*add_solids
0 0 0 0 0 -1 1.5 1.5
*move_reset
*set_move_scale_factors
a2/a1 1 1
*move_solids
2
# | End of List
*move_reset
*set_move_translations
b h 0
*move_solids
2
# | End of List
*fill_view
*solids_subtract
1 2
# | End of List
*reset_view
*fill_view
*rot_model_cspace_x_for
*rot_model_cspace_x_for
*rot_model_cspace_y_rev
*rot_model_cspace_y_rev
*rot_model_cspace_z_rev
*fill_view
*convert_solid_faces_surfaces
all_existing
*remove_solids
all_existing
*set_curve_div_type_fix_avgl
*set_curve_div_type_fix_avgl *set_curve_div_avgl
1
*apply_curve_divisions
all_existing
*set_curve_div_type_fix_avgl
*set_curve_div_type_fix_avgl *set_curve_div_avgl
0.3
*apply_curve_divisions
*zoom_box
*zoom_box(1,0.385621,0.442735,0.628758,0.724786)
4
36
1
31
3
8
6
9
2
7
5
14
# | End of List
*match_curves
0.1
all_existing
*dt_surface_trimesh
all_existing
*fill_view
*clear_geometry
*set_sweep_tolerance
0.1
*sweep_nodes
all_existing
*remove_unused_nodes
*align_shells
1
*set_mesh_transition
1.1
*dt_tet_tri_mesh
all_existing
*store_elements tets
all_existing
*set_nodes off
*elements_solid
*regenerate
*select_clear
*visible_selected
*add_points
0 -1 0
0 -1.5 0
0 -1 -1
0 -1.5 -1
0 -0.5 0
0 -0.5 -1
*set_curve_type polyline
*add_curves
2 4 3
# | End of List
*add_curves
1 1
# | End of List
*add_curves
3 6 5
# | End of List
*set_surface_type ruled
*add_surfaces
1 2
2 3
*fill_view
*convert_surfaces
1
# | End of List
*set_expand_rotations
0 0 -90/nexpand
*expand_elements
all_visible
*set_expand_repetitions
*undo
*set_expand_repetitions
nexpand
*expand_elements
all_visible
*store_elements crack1
all_visible
*set_sweep_tolerance
0.001
*sweep_nodes
all_visible
*select_clear
*visible_selected
*convert_surfaces
2
# | End of List
*expand_elements
all_visible
*fill_view
*store_elements crack2
all_visible
*sweep_nodes
all_visible
*select_clear
*visible_selected
*clear_geometry
*add_points
0 -0.5 0
0 0 0
*set_curve_type arc_cpp
*add_curves
0 0 0
-0.5 0 0
0 -0.5 0
*set_curve_type line
*add_curves
2 3 2 1
*set_curve_div_type_fix_ndiv
*set_curve_div_type_fix_ndiv *set_curve_div_num
10
*apply_curve_divisions
2
3
# | End of List
*set_curve_div_type_fix_ndiv *set_curve_div_num
22
*apply_curve_divisions
1
# | End of List
*set_mesh_transition
1
*af_planar_quadmesh
all_visible
*set_expand_translations
0 0 -1/5
*expand_reset
*set_expand_translations
0 0 -1/5
*set_expand_repetitions
5
*expand_elements
all_visible
*remove_unused_nodes
*clear_geometry
*store_elements fill
all_visible
*select_sets
tets
*move_reset
*set_move_scale_factors
a2/a1 1 1
*move_elements
all_unselected
*move_reset
*set_move_translations
b h 0
*move_elements
all_unselected
*select_clear
*fill_view
*select_sets
crack2
fill
*visible_selected
*fill_view
*set_sweep_tolerance
0.005
*sweep_nodes
all_visible
*select_clear
*invisible_selected
*fill_view
*zoom_box
*zoom_box(1,0.418301,0.494017,0.596078,0.682051)
*select_sets
crack1
*visible_selected
*set_curve_type arc_cpa
*set_curve_type arc_cpp
*add_curves
0 0 0
-1 0 0
0 -1 0
*move_reset
*set_move_scale_factors
a2/a1 1 1
*move_curves
all_existing
*fill_view
*move_reset
*set_move_translations
b h 0
*move_curves
all_existing
*fill_view
*set_attach_limit on
*set_attach_distance
0.01
*set_attach_tolerance
1e-5
*attach_edges_curve
1
*undo
*fill_view
*move_curves
all_existing
*fill_view
*attach_nodes_point
*attach_edges_curve
*attach_faces_surface
*attach_edges_curve
1
all_visible
*select_nodes_curves
1
# | End of List
*store_nodes crackfront
all_selected
*store_nodes crackfront
*select_clear
*invisible_selected
*fill_view
*zoom_box
*zoom_box(1,0.405229,0.464957,0.606536,0.711111)
*new_crack
*crack_option rigreg_method:topology
*crack_param num_rig_regions
7
*set_crack_tip_node_path
crackfront
*crack_param tip_node_dist_tol
0.001
*material_type mechanical:isotropic
*material_value isotropic:youngs_modulus
2e5
0.3
*add_material_elements
all_existing
*zoom_box
*zoom_box(1,0.558170,0.600000,0.684967,0.687180)
*fill_view
*zoom_box
*zoom_box(1,0.473203,0.540171,0.482353,0.558974)
*new_contact_body
*contact_body_name
crack2
*contact_deformable
*add_contact_body_elements
crack2
fill
*new_contact_body
*contact_body_name
crack1
*contact_deformable
*add_contact_body_elements
crack1
*new_contact_body
*contact_body_name
tets
*contact_deformable
*add_contact_body_elements
tets
*fill_view
*clear_geometry
*add_points
-10 -10 -l
-10 20 -l
18 -10 -l
18 20 -l
*set_surface_type quad
*add_surfaces
2 1 3 4
*add_points
b -10 10
b -10 -25
b 20 -25
b 20 10
*add_surfaces
6 7 8 5
*duplicate_reset
*set_duplicate_translations
0 0 l
*duplicate_surfaces
1
# | End of List
*flip_surfaces
1
# | End of List
*fill_view
*new_contact_body
*contact_body_name
moving
*contact_rigid
*contact_option control:load
*add_contact_body_surfaces
1
# | End of List
*renumber_nodes
*add_nodes
b/2 h/2 -l
b/2 h/2 -l
*new_contact_body
*contact_body_name
force
*remove_current_contact_body
*cbody_control_node
nnodes()-1
*cbody_control_node_rot
6964
*new_apply
*apply_name
force
*new_md_table 1 1
*table_name
*set_md_table_type 1
time
*table_name
pointload
*table_add
0 0 1 1
*show_model
*apply_type point_load
*apply_dof z *apply_dof_value z
force
*apply_dof_table z
pointload
*add_apply_nodes
nnodes()-1
# | End of List
*new_apply
*apply_name
moment
*apply_type point_load
*apply_dof mx *apply_dof_value mx
moment
*apply_dof_table mx
pointload
*add_apply_nodes
nnodes()
# | End of List
*new_contact_body
*contact_body_name
symmx
*contact_symmetry
*add_contact_body_surfaces
2
# | End of List
*new_contact_body
*contact_body_name
cracksym
*contact_symmetry
*add_contact_body_surfaces
3
# | End of List
*new_contact_table
*contact_table_entry 1 3
*contact_table_option $ctbody1 $ctbody2 contact_type:glue
*contact_table_option $ctbody1 $ctbody2 glue_separation:allowed
*contact_table_property $ctbody1 $ctbody2 sep_for
1e32
*contact_table_entry 1 2
*contact_table_option $ctbody1 $ctbody2 contact_type:glue
*contact_table_option $ctbody1 $ctbody2 glue_separation:allowed
*contact_table_property $ctbody1 $ctbody2 sep_for
1e32
*contact_table_entry 3 2
*contact_table_option $ctbody1 $ctbody2 contact_type:glue
*contact_table_option $ctbody1 $ctbody2 glue_separation:allowed
*contact_table_property $ctbody1 $ctbody2 sep_for
1e32
*contact_table_entry 3 4
*contact_table_option $ctbody1 $ctbody2 contact_type:glue
*contact_table_option $ctbody1 $ctbody2 glue_separation:allowed
*contact_table_property $ctbody1 $ctbody2 sep_for
1e32
*contact_table_entry 2 5
*contact_table_option $ctbody1 $ctbody2 contact_type:touching
*contact_table_entry 1 5
*contact_table_option $ctbody1 $ctbody2 contact_type:touching
*contact_table_entry 3 5
*contact_table_option $ctbody1 $ctbody2 contact_type:touching
*contact_table_entry 2 6
*contact_table_option $ctbody1 $ctbody2 contact_type:touching
*contact_table_entry 3 6
*contact_table_option $ctbody1 $ctbody2 contact_type:touching
*loadcase_type static
*loadcase_ctable
ctable1
*job_class mechanical
*add_job_loadcases lcase1
*job_contact_table
ctable1
*job_param disttol
0.01
*add_post_tensor stress
*add_post_var von_mises
*job_option solver:it_sparse
*job_option sparse_prec:inc_chol
*save_model
*update_job
*submit_job 1 *monitor_job
*kill_job *monitor_job
*apply_type point_load
*apply_dof x *apply_dof_value x
*clear_apply_dof mx
*apply_dof_value x moment
*apply_dof_table x
pointload
*save_model
*update_job
*submit_job 1 *monitor_job
*monitor_job
*update_job
*submit_job 1 *monitor_job
*save_model
*post_open_default
*post_contour_bands
*set_deformed both *find_solid_outline
*post_value Equivalent Von Mises Stress
*post_monitor
*zoom_box
*zoom_box(1,0.435294,0.515203,0.607843,0.726351)
*post_monitor
*zoom_box
*zoom_box(1,0.295425,0.224662,0.515033,0.452703)
*save_model


登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP

5