Source code for cmrsim.utils.particle_properties
""" Module containing factory functions to define particle properties used"""
__all__ = ["uniform", "norm_magnetization", "t2star_lorentzian"]
import tensorflow as tf
import numpy as np
from typing import Tuple
[docs]
def norm_magnetization(dtype: np.dtype = np.complex64):
""" """
def ret_func(n_new):
single_mag = np.array([[0 + 0j, 0 + 0j, 1 + 0j], ], dtype=np.complex64)
return np.tile(single_mag, [n_new, 1])
return ret_func
[docs]
def t2star_lorentzian(T2p: float, prctile_cutoff: float = 0.01, dtype: np.dtype = np.float32):
def ret_func(n_new: int):
pos_on_distribution_support = tf.random.uniform([n_new], minval=0 + prctile_cutoff,
maxval=1 - prctile_cutoff) - 0.5
omega_t2s = 1. / T2p * tf.tan(np.pi * pos_on_distribution_support)
return np.array(omega_t2s).astype(dtype)
return ret_func