print_constraint_defects Subroutine

public subroutine print_constraint_defects(me, filename)

Print the r and v constraint defect norms for each segment constraint.

Type Bound

mission_type

Arguments

Type IntentOptional Attributes Name
class(mission_type), intent(in) :: me
character(len=*), intent(in) :: filename

csv file to write to


Calls

proc~~print_constraint_defects~~CallsGraph proc~print_constraint_defects mission_type%print_constraint_defects proc~define_problem_size mission_type%define_problem_size proc~print_constraint_defects->proc~define_problem_size proc~get_problem_arrays mission_type%get_problem_arrays proc~print_constraint_defects->proc~get_problem_arrays fill_vector fill_vector proc~get_problem_arrays->fill_vector

Called by

proc~~print_constraint_defects~~CalledByGraph proc~print_constraint_defects mission_type%print_constraint_defects proc~halo_solver_main halo_solver_main proc~halo_solver_main->proc~print_constraint_defects

Source Code

    subroutine print_constraint_defects(me, filename)

        class(mission_type),intent(in) :: me
        character(len=*),intent(in) :: filename !! csv file to write to

        real(wp),dimension(:),allocatable :: f !! constraint violations
        integer :: irev !! rev number
        integer :: i, j
        integer :: m !! number of functions
        integer :: istat , iunit

        open(newunit=iunit, file=filename, status='REPLACE', iostat=istat)
        if (istat/=0) error stop 'error opening '//filename

        call me%define_problem_size(m=m)
        allocate(f(m))
        call me%get_problem_arrays(f=f)

        ! f = [xf1-xf2, xf3-xf4, xf5-xf6, xf7-xf8, ... ] in rotating frame

        i = 0
        write(iunit,'(A26,A1,A26)') 'rerr (km)', ',', 'verr (km/s)'
        do irev = 1, me%n_revs
            do j = 1, 4
                i = i + 1
                write(iunit,'(1P,E26.16,A1,E26.16)') norm2(f(i:i+2)), ',', norm2(f(i+2:i+5))
            end do
        end do

        close(iunit, iostat=istat)

    end subroutine print_constraint_defects