discretization contains now all information to substitute mesh
only plastic_nonlocal needs extra information
This commit is contained in:
parent
14da4f8e43
commit
f0adcc665c
|
@ -19,6 +19,7 @@
|
|||
#include "mesh_base.f90"
|
||||
#include "HDF5_utilities.f90"
|
||||
#include "results.f90"
|
||||
#include "discretization.f90"
|
||||
#ifdef Abaqus
|
||||
#include "mesh_abaqus.f90"
|
||||
#endif
|
||||
|
|
|
@ -13,9 +13,12 @@ module discretization
|
|||
integer, public, protected :: &
|
||||
discretization_nIP, &
|
||||
discretization_nElem
|
||||
|
||||
integer, dimension(:), allocatable :: &
|
||||
discretization_homogenizationAt, &
|
||||
discretization_microstructureAt
|
||||
|
||||
|
||||
real(pReal), dimension(:,:), allocatable :: &
|
||||
real(pReal), dimension(:,:), allocatable :: &
|
||||
discretization_IPcoords0, &
|
||||
discretization_NodeCoords0, &
|
||||
discretization_IPcoords, &
|
||||
|
@ -29,21 +32,26 @@ module discretization
|
|||
contains
|
||||
|
||||
|
||||
subroutine discretization_init(nElem,IPcoords0,NodeCoords0)
|
||||
subroutine discretization_init(homogenizationAt,microstructureAt,IPcoords0,NodeCoords0)
|
||||
|
||||
integer, intent(in) :: &
|
||||
nElem
|
||||
integer, dimension(:), intent(in) :: &
|
||||
homogenizationAt, &
|
||||
microstructureAt
|
||||
real(pReal), dimension(:,:), intent(in) :: &
|
||||
IPcoords0, &
|
||||
NodeCoords0
|
||||
|
||||
write(6,'(/,a)') ' <<<+- discretization init -+>>>'
|
||||
|
||||
discretization_nElem = nElem
|
||||
|
||||
discretization_nElem = size(microstructureAt,1)
|
||||
discretization_nIP = size(IPcoords0,2)
|
||||
|
||||
discretization_homogenizationAt = homogenizationAt
|
||||
discretization_microstructureAt = microstructureAt
|
||||
|
||||
discretization_IPcoords0 = IPcoords0
|
||||
discretization_IPcoords = IPcoords0
|
||||
|
||||
discretization_NodeCoords0 = NodeCoords0
|
||||
discretization_NodeCoords = NodeCoords0
|
||||
|
||||
|
@ -51,7 +59,7 @@ end subroutine discretization_init
|
|||
|
||||
|
||||
subroutine discretization_results
|
||||
|
||||
#if defined(PETSc) || defined(DAMASK_HDF5)
|
||||
real(pReal), dimension(:,:), allocatable :: u
|
||||
|
||||
u = discretization_NodeCoords -discretization_NodeCoords0
|
||||
|
@ -59,7 +67,7 @@ subroutine discretization_results
|
|||
|
||||
u = discretization_IPcoords -discretization_IPcoords0
|
||||
call results_writeDataset('current',u,'u','IP displacements','m')
|
||||
|
||||
#endif
|
||||
end subroutine discretization_results
|
||||
|
||||
|
||||
|
|
|
@ -9,9 +9,11 @@ module mesh
|
|||
use prec
|
||||
use mesh_base
|
||||
use geometry_plastic_nonlocal
|
||||
use discretization
|
||||
|
||||
implicit none
|
||||
private
|
||||
|
||||
integer, public, protected :: &
|
||||
mesh_NcpElems, & !< total number of CP elements in local mesh
|
||||
mesh_elemType, & !< Element type of the mesh (only support homogeneous meshes)
|
||||
|
@ -519,6 +521,9 @@ subroutine mesh_init(ip,el)
|
|||
theMesh%homogenizationAt = mesh_element(3,:)
|
||||
theMesh%microstructureAt = mesh_element(4,:)
|
||||
|
||||
call discretization_init(mesh_element(3,:),mesh_element(4,:),&
|
||||
reshape(mesh_ipCoordinates,[3,theMesh%elem%nIPs*theMesh%nElems]),&
|
||||
mesh_node0)
|
||||
contains
|
||||
|
||||
|
||||
|
|
|
@ -197,7 +197,7 @@ subroutine mesh_init(ip,el)
|
|||
theMesh%homogenizationAt = mesh_element(3,:)
|
||||
theMesh%microstructureAt = mesh_element(4,:)
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
call discretization_init(product(grid), &
|
||||
call discretization_init(mesh_element(3,:),mesh_element(4,:),&
|
||||
reshape(mesh_ipCoordinates,[3,grid(1)*grid(2)*grid3]),&
|
||||
mesh_node0)
|
||||
|
||||
|
|
|
@ -375,6 +375,10 @@ subroutine mesh_init(ip,el)
|
|||
|
||||
theMesh%homogenizationAt = mesh_element(3,:)
|
||||
theMesh%microstructureAt = mesh_element(4,:)
|
||||
|
||||
call discretization_init(mesh_element(3,:),mesh_element(4,:),&
|
||||
reshape(mesh_ipCoordinates,[3,theMesh%elem%nIPs*theMesh%nElems]),&
|
||||
mesh_node0)
|
||||
|
||||
end subroutine mesh_init
|
||||
|
||||
|
|
Loading…
Reference in New Issue