Skip to content

Commit

Permalink
Merge pull request #72 from hugary1995/gb_cavitation
Browse files Browse the repository at this point in the history
Refactor grain boundary cavitation model
  • Loading branch information
reverendbedford authored Sep 26, 2024
2 parents 2bf2339 + c503611 commit 5aa9f1b
Show file tree
Hide file tree
Showing 54 changed files with 2,913 additions and 1,813 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,5 @@ build
*.csv
*.previous_test_results.json
*~
.vscode
*.yaml
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ RDG := no
RICHARDS := no
SOLID_MECHANICS := no
STOCHASTIC_TOOLS := no
TENSOR_MECHANICS := yes
SOLID_MECHANICS := yes
WATER_STEAM_EOS := no
XFEM := no
POROUS_FLOW := no
Expand Down
76 changes: 36 additions & 40 deletions examples/CPFE_with_GBcavitation/cpfem_with_GBcavitation_example.i
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,20 @@
displacements = 'disp_x disp_y disp_z'
[]

[Modules]
[TensorMechanics]
[Master]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
new_system = true
add_variables = true
formulation = TOTAL
volumetric_locking_correction = false
generate_output = 'cauchy_stress_xx cauchy_stress_yy cauchy_stress_zz cauchy_stress_xy '
'cauchy_stress_xz cauchy_stress_yz mechanical_strain_xx mechanical_strain_yy mechanical_strain_zz mechanical_strain_xy '
'mechanical_strain_xz mechanical_strain_yz'
generate_output = 'cauchy_stress_xx cauchy_stress_yy cauchy_stress_zz cauchy_stress_xy cauchy_stress_xz cauchy_stress_yz mechanical_strain_xx mechanical_strain_yy mechanical_strain_zz mechanical_strain_xy mechanical_strain_xz mechanical_strain_yz'
[]
[]
[]
[]
[]

#output some material propertiy from the cavitation model
[AuxVariables]
Expand All @@ -61,42 +59,41 @@
[]

[AuxKernels]
[a]
type = MaterialRealAux
boundary = 'interface'
property = a
execute_on = 'TIMESTEP_END'
variable = a
check_boundary_restricted = false #this is important
[]
[b]
type = MaterialRealAux
boundary = 'interface'
property = b
execute_on = 'TIMESTEP_END'
variable = b
check_boundary_restricted = false #this is important
[]
[D]
type = MaterialRealAux
boundary = 'interface'
property = interface_damage
execute_on = 'TIMESTEP_END'
variable = D
check_boundary_restricted = false #this is important
[]
[a]
type = MaterialRealAux
boundary = 'interface'
property = a
execute_on = 'TIMESTEP_END'
variable = a
check_boundary_restricted = false #this is important
[]
[b]
type = MaterialRealAux
boundary = 'interface'
property = b
execute_on = 'TIMESTEP_END'
variable = b
check_boundary_restricted = false #this is important
[]
[D]
type = MaterialRealAux
boundary = 'interface'
property = interface_damage
execute_on = 'TIMESTEP_END'
variable = D
check_boundary_restricted = false #this is important
[]
[]

[Modules/TensorMechanics/CohesiveZoneMaster]
[./czm_ik]
[Physics/SolidMechanics/CohesiveZone]
[czm_ik]
# add the proper cohesive interface kernels
boundary = 'interface'
strain = FINITE # use finite strins, total lagrangian formulation
generate_output='traction_x traction_y traction_z jump_x jump_y jump_z normal_traction tangent_traction normal_jump tangent_jump' #output traction and jump
[../]
generate_output = 'traction_x traction_y traction_z jump_x jump_y jump_z normal_traction tangent_traction normal_jump tangent_jump' #output traction and jump
[]
[]


[Functions]
# loading functions for each direction
[applied_load_x]
Expand All @@ -116,7 +113,6 @@
[]
[]


[BCs]
[x0]
type = DirichletBC
Expand Down Expand Up @@ -186,7 +182,7 @@
read_type = block
nblock = 10
use_zero_based_block_indexing = false
[../]
[]
[]
[Materials]
[stress]
Expand Down Expand Up @@ -228,7 +224,7 @@
start_time = 0.0
dtmin = 1e-4
dtmax = 1e3
end_time = 10
end_time = 10
n_max_nonlinear_pingpong = 1
nl_forced_its = 2

Expand All @@ -244,5 +240,5 @@

[Outputs]
sync_times = '0 0.1 1 10'
exodus=true
exodus = true
[]
119 changes: 58 additions & 61 deletions examples/euler_angle-reader/cpfem_eulerTest.i
Original file line number Diff line number Diff line change
Expand Up @@ -8,147 +8,144 @@
[]

[Variables]
[./disp_x]
order = second
[../]
[./disp_y]
order = second
[../]
[./disp_z]
order = second
[../]
[disp_x]
order = second
[]
[disp_y]
order = second
[]
[disp_z]
order = second
[]
[]

[Functions]
[./pfn]
[pfn]
type = PiecewiseLinear
x = '0 100'
y = '0.00 0.01'
[../]
[]
[]

[AuxVariables]
[./orientation_q1]
[orientation_q1]
order = CONSTANT
family = MONOMIAL
[../]
[./orientation_q2]
[]
[orientation_q2]
order = CONSTANT
family = MONOMIAL
[../]
[./orientation_q3]
[]
[orientation_q3]
order = CONSTANT
family = MONOMIAL
[../]
[./orientation_q4]
[]
[orientation_q4]
order = CONSTANT
family = MONOMIAL
[../]
[]
[]

[AuxKernels]
[q1]
type = MaterialStdVectorAux
property = orientation
property = orientation
index = 0
variable = orientation_q1
[../]
variable = orientation_q1
[]
[q2]
type = MaterialStdVectorAux
property = orientation
property = orientation
index = 1
variable = orientation_q2
[../]
variable = orientation_q2
[]
[q3]
type = MaterialStdVectorAux
property = orientation
property = orientation
index = 2
variable = orientation_q3
[../]
variable = orientation_q3
[]
[q4]
type = MaterialStdVectorAux
property = orientation
property = orientation
index = 3
variable = orientation_q4
[../]
variable = orientation_q4
[]
[]

[Modules]
[TensorMechanics]
[Master]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
new_system = true
formulation = TOTAL
volumetric_locking_correction = false
generate_output = 'cauchy_stress_xx cauchy_stress_yy cauchy_stress_zz cauchy_stress_xy '
'cauchy_stress_xz cauchy_stress_yz mechanical_strain_xx mechanical_strain_yy mechanical_strain_zz mechanical_strain_xy '
'mechanical_strain_xz mechanical_strain_yz'
generate_output = 'cauchy_stress_xx cauchy_stress_yy cauchy_stress_zz cauchy_stress_xy cauchy_stress_xz cauchy_stress_yz mechanical_strain_xx mechanical_strain_yy mechanical_strain_zz mechanical_strain_xy mechanical_strain_xz mechanical_strain_yz'
[]
[]
[]
[]
[]

[UserObjects]
[./euler_angle_file]
[euler_angle_file]
type = ElementPropertyReadFile
nprop = 3
prop_file_name = grn_10_rand.tex
read_type = block
nblock = 10
use_zero_based_block_indexing = false
[../]
[]
[]
[BCs]
[./left]
type = DirichletBC
preset = true
variable = disp_x
boundary = left
value = 0.0
[../]

[./bottom]
[left]
type = DirichletBC
preset = true
preset = true
variable = disp_x
boundary = left
value = 0.0
[]

[bottom]
type = DirichletBC
preset = true
variable = disp_y
boundary = bottom
value = 0.0
[../]
[]

[./back]
[back]
type = DirichletBC
preset = true
preset = true
variable = disp_z
boundary = back
value = 0.0
[../]
[]

[./front]
[front]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = pfn
preset = true
[../]
[]
[]

[Materials]
[./stress]
[stress]
type = NEMLCrystalPlasticity
database = "test.xml"
model = "grain_1"
large_kinematics = true
euler_angle_reader = euler_angle_file
[../]
[]
[]


[Preconditioning]
[./smp]
[smp]
type = SMP
full = true
[../]
[]
[]

[Executioner]
Expand Down
Loading

0 comments on commit 5aa9f1b

Please sign in to comment.