how to echo meta tag in header using php

Use the_title_attribute() to print the attribute. A post title might contain HTML, so you need the escaped content that this function returns.
Also suppress immediate print-out, because that will set the output in front of the echo statement.

if ( is_singular( 'communications' ) ) {
    $title = the_title_attribute( [ 'echo' => FALSE ] );
    echo '<meta name="citation_title" content="' . $title . '" />' . PHP_EOL;
}

Another question is why your theme knows so much about the post type. Custom post types should always be registered in a plugin. So that code should go to the plugin too. This is how the result could look like:

add_action( 'wp_head', 'add_citation_title' );

function add_citation_title() {

    if ( ! is_singular( 'communications' ) )
        return;

    $title = the_title_attribute( [ 'echo' => FALSE ] );
    echo '<meta name="citation_title" content="' . $title . '" />' . PHP_EOL;
}