Print the r
and v
constraint defect norms for each segment constraint.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mission_type), | intent(in) | :: | me | |||
character(len=*), | intent(in) | :: | filename |
csv file to write to |
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