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