no need for orientation class at the moment
implement only if we need symmetry aware operations
This commit is contained in:
parent
0c1c40f1de
commit
407f94082f
|
@ -69,18 +69,14 @@ add_library(ROTATIONS OBJECT "rotations.f90")
|
||||||
add_dependencies(ROTATIONS LAMBERT QUATERNIONS)
|
add_dependencies(ROTATIONS LAMBERT QUATERNIONS)
|
||||||
list(APPEND OBJECTFILES $<TARGET_OBJECTS:ROTATIONS>)
|
list(APPEND OBJECTFILES $<TARGET_OBJECTS:ROTATIONS>)
|
||||||
|
|
||||||
add_library(ORIENTATIONS OBJECT "orientations.f90")
|
|
||||||
add_dependencies(ORIENTATIONS ROTATIONS)
|
|
||||||
list(APPEND OBJECTFILES $<TARGET_OBJECTS:ORIENTATIONS>)
|
|
||||||
|
|
||||||
# SPECTRAL solver and FEM solver use different mesh files
|
# SPECTRAL solver and FEM solver use different mesh files
|
||||||
if (PROJECT_NAME STREQUAL "DAMASK_spectral")
|
if (PROJECT_NAME STREQUAL "DAMASK_spectral")
|
||||||
add_library(MESH OBJECT "mesh.f90")
|
add_library(MESH OBJECT "mesh.f90")
|
||||||
add_dependencies(MESH ORIENTATIONS FEsolving)
|
add_dependencies(MESH ROTATIONS FEsolving)
|
||||||
list(APPEND OBJECTFILES $<TARGET_OBJECTS:MESH>)
|
list(APPEND OBJECTFILES $<TARGET_OBJECTS:MESH>)
|
||||||
elseif (PROJECT_NAME STREQUAL "DAMASK_FEM")
|
elseif (PROJECT_NAME STREQUAL "DAMASK_FEM")
|
||||||
add_library(FEZoo OBJECT "FEM_zoo.f90")
|
add_library(FEZoo OBJECT "FEM_zoo.f90")
|
||||||
add_dependencies(FEZoo ORIENTATIONS FEsolving)
|
add_dependencies(FEZoo ROTATIONS FEsolving)
|
||||||
list(APPEND OBJECTFILES $<TARGET_OBJECTS:FEZoo>)
|
list(APPEND OBJECTFILES $<TARGET_OBJECTS:FEZoo>)
|
||||||
add_library(MESH OBJECT "meshFEM.f90")
|
add_library(MESH OBJECT "meshFEM.f90")
|
||||||
add_dependencies(MESH FEZoo)
|
add_dependencies(MESH FEZoo)
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
#include "quaternions.f90"
|
#include "quaternions.f90"
|
||||||
#include "Lambert.f90"
|
#include "Lambert.f90"
|
||||||
#include "rotations.f90"
|
#include "rotations.f90"
|
||||||
#include "orientations.f90"
|
|
||||||
#include "FEsolving.f90"
|
#include "FEsolving.f90"
|
||||||
#include "mesh.f90"
|
#include "mesh.f90"
|
||||||
#include "material.f90"
|
#include "material.f90"
|
||||||
|
|
|
@ -12,8 +12,8 @@ module crystallite
|
||||||
use prec, only: &
|
use prec, only: &
|
||||||
pReal, &
|
pReal, &
|
||||||
pInt
|
pInt
|
||||||
use orientations, only: &
|
use rotations, only: &
|
||||||
orientation
|
rotation
|
||||||
use FEsolving, only: &
|
use FEsolving, only: &
|
||||||
FEsolving_execElem, &
|
FEsolving_execElem, &
|
||||||
FEsolving_execIP
|
FEsolving_execIP
|
||||||
|
@ -45,7 +45,7 @@ module crystallite
|
||||||
crystallite_Tstar_v, & !< current 2nd Piola-Kirchhoff stress vector (end of converged time step) ToDo: Should be called S, 3x3
|
crystallite_Tstar_v, & !< current 2nd Piola-Kirchhoff stress vector (end of converged time step) ToDo: Should be called S, 3x3
|
||||||
crystallite_Tstar0_v, & !< 2nd Piola-Kirchhoff stress vector at start of FE inc ToDo: Should be called S, 3x3
|
crystallite_Tstar0_v, & !< 2nd Piola-Kirchhoff stress vector at start of FE inc ToDo: Should be called S, 3x3
|
||||||
crystallite_partionedTstar0_v !< 2nd Piola-Kirchhoff stress vector at start of homog inc ToDo: Should be called S, 3x3
|
crystallite_partionedTstar0_v !< 2nd Piola-Kirchhoff stress vector at start of homog inc ToDo: Should be called S, 3x3
|
||||||
type(orientation), dimension(:,:,:), allocatable, private :: &
|
type(rotation), dimension(:,:,:), allocatable, private :: &
|
||||||
crystallite_ori, & !< orientation as quaternion
|
crystallite_ori, & !< orientation as quaternion
|
||||||
crystallite_ori0 !< initial orientation as quaternion
|
crystallite_ori0 !< initial orientation as quaternion
|
||||||
real(pReal), dimension(:,:,:,:), allocatable, private :: &
|
real(pReal), dimension(:,:,:,:), allocatable, private :: &
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
!---------------------------------------------------------------------------------------------------
|
|
||||||
!> @author Martin Diehl, Max-Planck-Institut für Eisenforschung GmbH
|
|
||||||
!> @brief orientation storage
|
|
||||||
!> @details: orientation = rotation + symmetry
|
|
||||||
!---------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
module orientations
|
|
||||||
use rotations
|
|
||||||
use prec, only: &
|
|
||||||
pStringLen
|
|
||||||
|
|
||||||
implicit none
|
|
||||||
type, extends(rotation), public :: orientation
|
|
||||||
character(len=pStringLen) :: sym = 'none'
|
|
||||||
end type orientation
|
|
||||||
|
|
||||||
interface orientation
|
|
||||||
module procedure :: orientation_init
|
|
||||||
end interface orientation
|
|
||||||
|
|
||||||
contains
|
|
||||||
|
|
||||||
type(orientation) function orientation_init(sym,eu,ax,om,qu,cu,ho,ro)
|
|
||||||
use prec
|
|
||||||
implicit none
|
|
||||||
character(len=pStringLen), intent(in), optional :: sym
|
|
||||||
real(pReal), intent(in), optional, dimension(3) :: eu, cu, ho
|
|
||||||
real(pReal), intent(in), optional, dimension(4) :: ax, qu, ro
|
|
||||||
real(pReal), intent(in), optional, dimension(3,3) :: om
|
|
||||||
|
|
||||||
if (present(sym)) orientation_init%sym = sym
|
|
||||||
|
|
||||||
if (present(om)) then
|
|
||||||
call orientation_init%fromRotationMatrix(om)
|
|
||||||
endif
|
|
||||||
|
|
||||||
end function orientation_init
|
|
||||||
|
|
||||||
end module
|
|
Loading…
Reference in New Issue