379# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
381# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
382 use iso_fortran_env,
only: output_unit
383# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
385# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
386 print *,
'm_hyperelastic.fpp:39: ',
'@:ALLOCATE(btensor%vf(1:b_size))'
387# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
389# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
390 call flush (output_unit)
391# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
393# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
395# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
397# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
399# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
401# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
402#if defined(MFC_OpenACC)
403# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
405# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
406#elif defined(MFC_OpenMP)
407# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
409# 39 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
413# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
415# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
416 use iso_fortran_env,
only: output_unit
417# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
419# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
420 print *,
'm_hyperelastic.fpp:41: ',
'@:ALLOCATE(btensor%vf(i)%sf(0:m, 0:n, 0:p))'
421# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
423# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
424 call flush (output_unit)
425# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
427# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
429# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
430 allocate (
btensor%vf(i)%sf(0:m, 0:n, 0:p))
431# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
433# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
435# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
436#if defined(MFC_OpenACC)
437# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
439# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
440#elif defined(MFC_OpenMP)
441# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
443# 41 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
447# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
449# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
450 integer :: macros_setup_vfs_i
451# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
453# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
455# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
457# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
458 use iso_fortran_env,
only: output_unit
459# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
461# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
462 print *,
'm_hyperelastic.fpp:43: ',
'@:ACC_SETUP_VFs(btensor)'
463# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
465# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
466 call flush (output_unit)
467# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
469# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
471# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
473# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
475# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
476#if defined(MFC_OpenACC)
477# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
479# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
480#elif defined(MFC_OpenMP)
481# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
483# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
485# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
487# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
488#if defined(MFC_OpenACC)
489# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
491# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
492#elif defined(MFC_OpenMP)
493# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
495# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
497# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
498 if (
allocated(
btensor%vf))
then
499# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
500 do macros_setup_vfs_i = lbound(
btensor%vf, 1), ubound(
btensor%vf, 1)
501# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
502 if (
associated(
btensor%vf(macros_setup_vfs_i)%sf))
then
503# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
505# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
506#if defined(MFC_OpenACC)
507# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
509# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
510#elif defined(MFC_OpenMP)
511# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
513# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
515# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
517# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
518#if defined(MFC_OpenACC)
519# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
521# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
522#elif defined(MFC_OpenMP)
523# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
525# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
527# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
529# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
531# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
533# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
535# 43 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
539# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
541# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
542 use iso_fortran_env,
only: output_unit
543# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
545# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
546 print *,
'm_hyperelastic.fpp:45: ',
'@:ALLOCATE(Gs_hyper(1:num_fluids))'
547# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
549# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
550 call flush (output_unit)
551# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
553# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
555# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
557# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
559# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
561# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
562#if defined(MFC_OpenACC)
563# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
565# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
566#elif defined(MFC_OpenMP)
567# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
569# 45 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
572# 46 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
573#if defined(MFC_OpenACC)
574# 46 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
576# 46 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
577#elif defined(MFC_OpenMP)
578# 46 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
580# 46 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
586# 50 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
587#if defined(MFC_OpenACC)
588# 50 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
590# 50 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
591#elif defined(MFC_OpenMP)
592# 50 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
594# 50 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
598# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
600# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
601 use iso_fortran_env,
only: output_unit
602# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
604# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
605 print *,
'm_hyperelastic.fpp:52: ',
'@:ALLOCATE(fd_coeff_x_hyper(-fd_number:fd_number, 0:m))'
606# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
608# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
609 call flush (output_unit)
610# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
612# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
614# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
616# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
618# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
620# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
621#if defined(MFC_OpenACC)
622# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
624# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
625#elif defined(MFC_OpenMP)
626# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
628# 52 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
632# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
634# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
635 use iso_fortran_env,
only: output_unit
636# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
638# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
639 print *,
'm_hyperelastic.fpp:54: ',
'@:ALLOCATE(fd_coeff_y_hyper(-fd_number:fd_number, 0:n))'
640# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
642# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
643 call flush (output_unit)
644# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
646# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
648# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
650# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
652# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
654# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
655#if defined(MFC_OpenACC)
656# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
658# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
659#elif defined(MFC_OpenMP)
660# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
662# 54 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
667# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
669# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
670 use iso_fortran_env,
only: output_unit
671# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
673# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
674 print *,
'm_hyperelastic.fpp:57: ',
'@:ALLOCATE(fd_coeff_z_hyper(-fd_number:fd_number, 0:p))'
675# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
677# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
678 call flush (output_unit)
679# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
681# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
683# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
685# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
687# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
689# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
690#if defined(MFC_OpenACC)
691# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
693# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
694#elif defined(MFC_OpenMP)
695# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
697# 57 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
702 call s_compute_finite_difference_coefficients(m, x_cc,
fd_coeff_x_hyper, buff_size, fd_number, fd_order)
704# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
705#if defined(MFC_OpenACC)
706# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
708# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
709#elif defined(MFC_OpenMP)
710# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
712# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
715 call s_compute_finite_difference_coefficients(n, y_cc,
fd_coeff_y_hyper, buff_size, fd_number, fd_order)
717# 65 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
718#if defined(MFC_OpenACC)
719# 65 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
721# 65 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
722#elif defined(MFC_OpenMP)
723# 65 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
725# 65 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
729 call s_compute_finite_difference_coefficients(p, z_cc,
fd_coeff_z_hyper, buff_size, fd_number, fd_order)
731# 69 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
732#if defined(MFC_OpenACC)
733# 69 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
735# 69 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
736#elif defined(MFC_OpenMP)
737# 69 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
739# 69 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
748 type(scalar_field),
dimension(sys_size),
intent(inout) ::
q_cons_vf
749 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
751# 83 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
752 real(wp),
dimension(tensor_size) :: tensora, tensorb
753# 85 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
755# 89 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
756 real(wp),
dimension(num_fluids) :: alpha_k, alpha_rho_k
757# 91 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
758 real(wp),
dimension(2) :: re
759 real(wp) :: rho, gamma, pi_inf, qv
761 integer ::
j,
k,
l, i, r
764# 96 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
766# 96 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
767#if defined(MFC_OpenACC)
768# 96 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
770# 96 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
771#elif defined(MFC_OpenMP)
772# 96 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
774# 96 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
776# 96 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
778# 96 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
780# 96 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
782# 98 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
786 call s_compute_species_fraction(
q_cons_vf,
j,
k,
l, alpha_rho_k, alpha_k)
789 call s_convert_species_to_mixture_variables_acc(rho, gamma, pi_inf, qv, alpha_k, alpha_rho_k, re, g_local, &
791 rho = max(rho, sgm_eps)
792 g_local = max(g_local, sgm_eps)
794 if (g_local > verysmall)
then
796# 110 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
797#if defined(MFC_OpenACC)
798# 110 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
800# 110 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
801#elif defined(MFC_OpenMP)
802# 110 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
804# 110 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
806 do i = 1, tensor_size
812# 116 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
813#if defined(MFC_OpenACC)
814# 116 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
816# 116 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
817#elif defined(MFC_OpenMP)
818# 116 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
820# 116 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
822 do r = -fd_number, fd_number
837 tensorb(1) = tensora(5)*tensora(9) - tensora(6)*tensora(8)
838 tensorb(2) = -(tensora(2)*tensora(9) - tensora(3)*tensora(8))
839 tensorb(3) = tensora(2)*tensora(6) - tensora(3)*tensora(5)
840 tensorb(4) = -(tensora(4)*tensora(9) - tensora(6)*tensora(7))
841 tensorb(5) = tensora(1)*tensora(9) - tensora(3)*tensora(7)
842 tensorb(6) = -(tensora(1)*tensora(6) - tensora(4)*tensora(3))
843 tensorb(7) = tensora(4)*tensora(8) - tensora(5)*tensora(7)
844 tensorb(8) = -(tensora(1)*tensora(8) - tensora(2)*tensora(7))
845 tensorb(9) = tensora(1)*tensora(5) - tensora(2)*tensora(4)
848 tensorb(tensor_size) = tensora(1)*(tensora(5)*tensora(9) - tensora(6)*tensora(8)) - tensora(2)*(tensora(4) &
849 & *tensora(9) - tensora(6)*tensora(7)) + tensora(3)*(tensora(4)*tensora(8) - tensora(5)*tensora(7))
851 if (tensorb(tensor_size) > verysmall)
then
854# 148 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
855#if defined(MFC_OpenACC)
856# 148 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
858# 148 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
859#elif defined(MFC_OpenMP)
860# 148 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
862# 148 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
864 do i = 1, tensor_size - 1
865 tensora(i) = tensorb(i)/tensorb(tensor_size)
869 tensorb(tensor_size) = 1._wp/tensorb(tensor_size)
872 tensorb(1) = tensora(1)**2 + tensora(2)**2 + tensora(3)**2
873 tensorb(5) = tensora(4)**2 + tensora(5)**2 + tensora(6)**2
874 tensorb(9) = tensora(7)**2 + tensora(8)**2 + tensora(9)**2
875 tensorb(2) = tensora(1)*tensora(4) + tensora(2)*tensora(5) + tensora(3)*tensora(6)
876 tensorb(3) = tensora(1)*tensora(7) + tensora(2)*tensora(8) + tensora(3)*tensora(9)
877 tensorb(6) = tensora(4)*tensora(7) + tensora(5)*tensora(8) + tensora(6)*tensora(9)
879# 165 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
881# 165 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
883# 165 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
885# 165 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
887# 165 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
889# 165 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
891# 167 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
893 btensor%vf(b_size)%sf(
j,
k,
l) = tensorb(tensor_size)
895 if (hyper_model == 1)
then
897 else if (hyper_model == 2)
then
901 q_prim_vf(e_idx)%sf(
j,
k,
l) = q_prim_vf(e_idx)%sf(
j,
k,
l) - g_local*q_prim_vf(xiend + 1)%sf(
j,
k, &
905# 179 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
906#if defined(MFC_OpenACC)
907# 179 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
909# 179 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
910#elif defined(MFC_OpenMP)
911# 179 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
913# 179 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
916 q_cons_vf(strxb + i - 1)%sf(
j,
k,
l) = rho*q_prim_vf(strxb + i - 1)%sf(
j,
k,
l)
924# 188 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
925#if defined(MFC_OpenACC)
926# 188 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
928# 188 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
929#elif defined(MFC_OpenMP)
930# 188 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
932# 188 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
934# 188 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
943# 195 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
945# 195 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
947# 195 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
949# 195 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
951# 195 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
953# 195 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
955# 195 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
957 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
958 type(scalar_field),
dimension(b_size),
intent(inout) :: btensor_in
959 real(wp),
intent(in) :: G_param
960 integer,
intent(in) :: j, k, l
962 real(wp),
parameter :: f13 = 1._wp/3._wp
965 trace = btensor_in(1)%sf(j, k, l) + btensor_in(3)%sf(j, k, l) + btensor_in(6)%sf(j, k, l)
968# 208 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
969 btensor_in(1)%sf(j, k, l) = btensor_in(1)%sf(j, k, l) - f13*trace
970# 208 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
971 btensor_in(3)%sf(j, k, l) = btensor_in(3)%sf(j, k, l) - f13*trace
972# 208 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
973 btensor_in(6)%sf(j, k, l) = btensor_in(6)%sf(j, k, l) - f13*trace
974# 210 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
977# 211 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
978#if defined(MFC_OpenACC)
979# 211 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
981# 211 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
982#elif defined(MFC_OpenMP)
983# 211 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
985# 211 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
988 q_prim_vf(strxb + i - 1)%sf(j, k, l) = g_param*btensor_in(i)%sf(j, k, l)/btensor_in(b_size)%sf(j, k, l)
991 q_prim_vf(xiend + 1)%sf(j, k, l) = 0.5_wp*(trace - 3.0_wp)/btensor_in(b_size)%sf(j, k, l)
999# 223 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
1001# 223 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
1003# 223 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
1005# 223 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
1007# 223 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
1009# 223 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
1011# 223 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
1013 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1014 type(scalar_field),
dimension(b_size),
intent(inout) :: btensor_in
1015 real(wp),
intent(in) :: G_param
1016 integer,
intent(in) :: j, k, l
1018 real(wp),
parameter :: f13 = 1._wp/3._wp
1021 trace = btensor_in(1)%sf(j, k, l) + btensor_in(3)%sf(j, k, l) + btensor_in(6)%sf(j, k, l)
1024 btensor_in(1)%sf(j, k, l) = btensor_in(1)%sf(j, k, l) - f13*trace
1025 btensor_in(3)%sf(j, k, l) = btensor_in(3)%sf(j, k, l) - f13*trace
1026 btensor_in(6)%sf(j, k, l) = btensor_in(6)%sf(j, k, l) - f13*trace
1030# 240 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
1031#if defined(MFC_OpenACC)
1032# 240 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
1034# 240 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
1035#elif defined(MFC_OpenMP)
1036# 240 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
1038# 240 "/home/runner/work/MFC/MFC/src/simulation/m_hyperelastic.fpp"
1040 do i = 1, b_size - 1
1041 q_prim_vf(strxb + i - 1)%sf(j, k, l) = g_param*btensor_in(i)%sf(j, k, l)/btensor_in(b_size)%sf(j, k, l)
1044 q_prim_vf(xiend + 1)%sf(j, k, l) = 0.5_wp*(trace - 3.0_wp)/btensor_in(b_size)%sf(j, k, l)
subroutine s_neohookean_cauchy_solver(btensor_in, q_prim_vf, g_param, j, k, l)
Compute the neo-Hookean Cauchy stress from the left Cauchy-Green tensor.