Amardip Ghosh 

I am a faculty member in the aerospace engineering department at IIT Kharagpur where I teach courses such as Aircraft Propulsion, Introduction to Aerodynamics, Low Speed Aerodynamics, Supersonic Aerodynamics and Hypersonic Aerodynamics. My research work focuses on SCRAMJET engines, supersonic mixing enhancement techniques and cardiovascular flows.



     461     0      0      0

     Hydrogen Embrittlement of Sensors (ChatGPT)


    Amardip Ghosh  #Member Profile

    Above specifications are for Setra Pressure Transducer Model AXD H

    https://www.setra.com/hubfs/Setra_Product_Data_Sheets/Setra_Model_AXD_Data_Sheet.pdf

     

    Hydrogen Embrittlement is a phenomenon where metals become brittle and crack because hydrogen atoms diffuse into the material. It's most common in high-strength steels and some other metals (like nickel alloys), but in principle, any metal can be vulnerable under certain conditions.

    Here’s how it happens:

    1.Hydrogen atoms, often generated from corrosion, electrochemical reactions, or even the hydrogen gas itself, penetrate the metal.

    2.Inside the metal, these tiny hydrogen atoms can congregate at internal defects (like dislocations, grain boundaries, or voids).

    3.Over time or under stress, the metal loses ductility and can crack — sometimes without much warning.

    If the sensor's diaphragm or wetted components are made from materials susceptible to hydrogen embrittlement (like certain stainless steels or high-strength alloys), over time the hydrogen exposure can cause:

    1.Micro-cracks in the diaphragm

    2.Drift in pressure readings (due to mechanical property changes)

    3.Complete failure (rupture of the diaphragm or sensor body)

    4.Also, hydrogen can permeate through thin metal diaphragms — this can lead to hydrogen collecting inside the sensor cavity, affecting the internal electronics (though this is a slower process).

    Real-world outcomes:

    1.Sensor calibration may drift over time.

    2.Sudden failure (no output or wrong output).

    3.Tiny leaks from the sensor body.

    Mitigation (what manufacturers often do):

    1.Use hydrogen-resistant materials (e.g., Hastelloy, special stainless steel grades, or gold-coated diaphragms).

    2.Add protective barriers (like coatings) to prevent hydrogen permeation.

    3.Design sensors specifically rated for "hydrogen service".

    How hydrogen embrittlement affects pressure sensors like the Setra 206 on hydrogen lines

    The Setra Model 206 pressure transducer utilizes 17-4 PH stainless steel for its diaphragm and all wetted components . While this material offers excellent mechanical strength and corrosion resistance, it is not recommended for use with hydrogen due to its susceptibility to hydrogen embrittlement.

    17-4 PH stainless steel, being a precipitation-hardened alloy, is particularly vulnerable to this phenomenon, especially under high-pressure hydrogen environments. Over time, exposure can result in:​

    Micro-cracking of the diaphragm

    Drift or failure in pressure readings

    Sudden mechanical failure

    Potential hydrogen leakage​

    These risks are especially pertinent in applications involving high-pressure hydrogen, such as fuel cells, electrolyzers, or hydrogen storage systems.

    Recommendations for Hydrogen Applications

    For applications involving hydrogen, it's advisable to consider pressure transducers specifically designed for such environments. These sensors typically feature:​

    Alternative materials: Use of Hastelloy, Inconel, or gold-plated diaphragms that offer better resistance to hydrogen embrittlement.

    Protective coatings: Application of hydrogen-impermeable coatings to prevent hydrogen diffusion.

    Specialized designs: Sensors engineered to withstand the unique challenges posed by hydrogen environments.​

    For instance, Setra's Model 209H and AXD H are designed for high-purity and corrosive gas applications and may offer better compatibility with hydrogen.

     

    https://www.setra.com/hubfs/Setra_Product_Data_Sheets/Setra_Model_AXD_Data_Sheet.pdf


     



     1753     0      0      0

     A Matlab code of how to do dynamic mode decomposition of a video sequence.


    Amardip Ghosh  #Advanced Propulsion Systems (APSYS) Lab

    A Matlab code of how to do dynamic mode decomposition of a video sequence. (ChatGPT)

     

    % DMD on a Video Sequence
    clear; close all; clc;

    %% Load Video
    videoFile = 'video.mp4'; % Change to your video file
    v = VideoReader(videoFile);

    % Parameters
    resizeFactor = 0.25; % Reduce size to speed up
    numFrames = min(100, floor(v.Duration * v.FrameRate)); % Limit number of frames

    % Read and preprocess video frames
    X = [];
    for i = 1:numFrames
    frame = readFrame(v);
    grayFrame = im2double(rgb2gray(frame)); % Convert to grayscale
    grayFrame = imresize(grayFrame, resizeFactor); % Resize
    X(:,i) = grayFrame(:); % Vectorize and store as column
    end

    %% Build data matrices X1 and X2
    X1 = X(:, 1:end-1);
    X2 = X(:, 2:end);

    %% Singular Value Decomposition
    [U, S, V] = svd(X1, 'econ');

    % Choose r - number of modes
    r = 20; % Adjust based on singular value decay
    U_r = U(:, 1:r);
    S_r = S(1:r, 1:r);
    V_r = V(:, 1:r);

    %% Build A tilde
    A_tilde = U_r' * X2 * V_r / S_r;

    %% Eigen decomposition
    [W, D] = eig(A_tilde);
    Phi = X2 * V_r / S_r * W; % DMD modes

    %% Compute DMD eigenvalues and frequencies
    lambda = diag(D);
    omega = log(lambda);

    %% Compute initial amplitudes b
    x1 = X(:,1);
    b = Phi x1;

    %% Time dynamics
    time_dynamics = zeros(r, numFrames - 1);
    t = (0:numFrames-2) / v.FrameRate; % Time vector in seconds

    for i = 1:length(t)
    time_dynamics(:, i) = (b .* exp(omega * t(i)));
    end

    X_dmd = real(Phi * time_dynamics);

    %% Visualize original vs reconstructed frame
    originalFrame = reshape(X(:, 30), size(grayFrame));
    reconstructedFrame = reshape(X_dmd(:, 30), size(grayFrame));

    figure;
    subplot(1,2,1); imshow(originalFrame,[]); title('Original Frame 30');
    subplot(1,2,2); imshow(reconstructedFrame,[]); title('DMD Reconstructed Frame 30');

     

    Some prompts I used for ChatGPT

    P1. Can you give me a Matlab code for Dynamic Mode Decomposition ? The code should be nicely commented so one can understand the purpose of each section.

    P2. Modify the Matlab code to handle an array of flattened image data

    P3. For the video sequence, how many snapshots, captured at what fps will be needed to show a mode at 200 Hz and a mode at 2000 Hz?

    P4. So DMD gives the eigen modes, their amplitudes and their complex frequencies. From the complex frequencies, the real part gives the growth or decay rate and the imaginary part gives the circular frequncy. Is this interpretation correct ?

    P5. How to get the amplitude of a mode ?

    P6. Can you give an example of complex amplitude ?

    https://chatgpt.com/share/680c8535-a310-8011-a547-64fd36db1cf6


     



     1467     0      0      0

     Bychkov Limit (ChatGPT, Google AI)


    Amardip Ghosh  #Advanced Propulsion Systems (APSYS) Lab

    The Bychkov limit, also known as the detonation cell size limit, is a concept in detonation physics that describes the minimum size of a detonation cell needed to sustain a propagating detonation wave. This limit is not fixed but depends on factors like the mixture composition, pressure, and tube diameter. [1, 1, 2, 2, 3, 3, 4, 4]. Detonation Cell Size: In a detonation, the reaction zone behind the shock wave propagates in a cellular structure, with each cell representing a single, self-sustaining detonation event. [1, 1, 3, 3, 5, 6]. Bychkov Limit: The Bychkov limit is a critical length scale related to the detonation cell size. It represents the minimum size of a detonation cell that can propagate a stable and sustained detonation wave. [1, 1, 2, 2, 7, 8]. Factors Affecting the Limit: [1, 2, 3, 9] (a) Mixture Composition: The type and ratio of fuel and oxidizer significantly impact the detonation cell size and thus the Bychkov limit. [1, 1, 3, 3, 9, 9] (b) Pressure: Higher pressures generally lead to smaller detonation cell sizes and a lower Bychkov limit. [1, 1, 3, 3, 9, 9, 10, 11, 12] (c) Tube Diameter: The diameter of the container or tube where the detonation is propagating can influence the minimum cell size required for sustained detonation. [1, 1, 2, 2, 3, 3].  Importance: Understanding the Bychkov limit is crucial for designing and analyzing detonation processes, predicting detonability, and mitigating the risks associated with explosions. [2, 2, 3, 3, 4, 4] (a) Experimental and Numerical Studies: The Bychkov limit and its relation to detonation cell size are extensively studied through experiments (e.g., in detonation tubes) and numerical simulations. [13, 13, 14, 14, 15, 15] (b) Examples: In experiments with hydrogen-oxygen mixtures, the Bychkov limit has been observed to be in the range of a few millimeters to several centimeters, depending on the specific conditions. [13, 13, 15, 15, 16, 16] (c) Transition to Deflagration: When the detonation cell size exceeds the Bychkov limit, the detonation wave may become unstable and transition to a deflagration (a slower, subsonic combustion process). [13, 13, 17, 17, 18, 18, 19]



     



     1556     0      0      0

     Independent Component Analysis (ICA) for a video sequence. ChatGPT


    Amardip Ghosh  #Advanced Propulsion Systems (APSYS) Lab

    %Here's a MATLAB code that performs Independent Component Analysis (ICA) on a video sequence. The goal is to treat each frame as a data %vector and then extract statistically independent components from this set using ICA.

    %This is particularly useful for motion segmentation, source separation, or background subtraction tasks.

     

    % ICA on a video sequence
    clc; clear; close all;

    % Load video
    videoFile = 'your_video.mp4'; % Change to your video file
    v = VideoReader(videoFile);
    numFrames = floor(v.Duration * v.FrameRate);

    % Read first frame to get dimensions
    frame = readFrame(v);
    grayFrame = rgb2gray(frame);
    [rows, cols] = size(grayFrame);
    frameSize = rows * cols;

    % Reset video to the beginning
    v.CurrentTime = 0;

    % Construct data matrix: each column is a vectorized frame
    dataMatrix = zeros(frameSize, numFrames);
    frameCount = 0;

    while hasFrame(v)
    frame = readFrame(v);
    grayFrame = rgb2gray(frame);
    grayFrame = im2double(grayFrame); % Normalize to [0,1]
    frameCount = frameCount 1;
    dataMatrix(:, frameCount) = grayFrame(:);
    end

    % Remove mean for ICA
    X = dataMatrix - mean(dataMatrix, 2);

    % Perform ICA using FastICA
    addpath('fastica'); % Make sure FastICA is in your path (download from https://research.ics.aalto.fi/ica/fastica/)
    [icasig, A, W] = fastica(X, 'numOfIC', 10); % You can change the number of ICs

    % Display some ICs as images
    figure;
    for i = 1:9
    subplot(3,3,i);
    imagesc(reshape(icasig(i, :), [1, frameCount]));
    colormap gray; axis off;
    title(['IC ', num2str(i)]);
    end

    % You can also reshape the spatial ICs if desired
    figure;
    for i = 1:9
    subplot(3,3,i);
    imagesc(reshape(A(:, i), rows, cols));
    colormap gray; axis off;
    title(['Spatial IC ', num2str(i)]);
    end

    disp('ICA completed successfully!');

     



     



     1558     0      0      0

     Principle Component Analysis (PCA) Matlab Code (ChatGPT)


    Amardip Ghosh  #Advanced Propulsion Systems (APSYS) Lab

     

    % PCA on an image set
    clc; clear; close all;

    % Set image directory
    imageDir = 'images/'; % Change this to your image folder path
    imageFiles = dir(fullfile(imageDir, '*.png')); % Change extension if needed (e.g., .jpg, .bmp)
    numImages = length(imageFiles);

    % Read first image to get dimensions
    firstImage = imread(fullfile(imageDir, imageFiles(1).name));
    if size(firstImage, 3) == 3
    firstImage = rgb2gray(firstImage); % Convert to grayscale if RGB
    end
    [rows, cols] = size(firstImage);
    imageSize = rows * cols;

    % Create data matrix where each column is an image vector
    dataMatrix = zeros(imageSize, numImages);

    for i = 1:numImages
    img = imread(fullfile(imageDir, imageFiles(i).name));
    if size(img, 3) == 3
    img = rgb2gray(img);
    end
    img = im2double(img); % Convert to double
    dataMatrix(:, i) = img(:); % Vectorize image
    end

    % Mean normalization
    meanImage = mean(dataMatrix, 2);
    X = dataMatrix - meanImage;

    % Compute covariance matrix
    C = cov(X');

    % Eigen decomposition
    [eigVectors, eigValues] = eig(C);
    eigValues = diag(eigValues);

    % Sort eigenvalues and vectors in descending order
    [~, idx] = sort(eigValues, 'descend');
    eigVectors = eigVectors(:, idx);

    % Project data onto principal components
    k = 10; % Number of principal components to keep
    eigVectors_k = eigVectors(:, 1:k);
    projectedData = eigVectors_k' * X;

    % Reconstruct an image using top k components
    reconstructed = eigVectors_k * projectedData meanImage;

    % Show original and reconstructed images
    figure;
    subplot(1, 2, 1);
    imshow(reshape(dataMatrix(:, 1), rows, cols), []);
    title('Original Image');

    subplot(1, 2, 2);
    imshow(reshape(reconstructed(:, 1), rows, cols), []);
    title(['Reconstructed with ', num2str(k), ' PCs']);

    disp('PCA completed successfully!');



     



     1695     0      0      0

     Wavelets in Signal Processing


    Amardip Ghosh  #Advanced Propulsion Systems (APSYS) Lab

    Above Image is from Arts, L.P.A., van den Broek, E.L. The fast continuous wavelet transformation (fCWT) for real-time, high-quality, noise-resistant time–frequency analysis. Nat Comput Sci 2, 47–58 (2022). https://doi.org/10.1038/s43588-021-00183-z

    How does wavelet transform differ from spectrogram when used on the same time series data ? 

    ChatGPT : Both wavelet transform and spectrograms are time-frequency analysis tools, but they differ significantly in how they analyze and represent the frequency content of time series data. Here's a breakdown of the differences:

    1. Spectrogram (based on Short-Time Fourier Transform - STFT)

    How it works:
    - Splits the signal into short, fixed-length time windows.
    - Applies the Fourier Transform to each window.
    - Gives a time vs frequency plot showing how frequency content changes over time.

    Key Characteristics:
    - Fixed time-frequency resolution: The window length is constant, so you have a trade-off:
      - Good time resolution → poor frequency resolution.
      - Good frequency resolution → poor time resolution.
    - Best for stationary or slowly varying signals.

    Analogy: Like taking snapshots of a signal using the same size lens—details get lost either in time or frequency depending on the window size.

    2. Wavelet Transform (especially Continuous Wavelet Transform - CWT)

    How it works:
    - Decomposes the signal using scaled and shifted versions of a wavelet (a small waveform).
    - Automatically adjusts the resolution:
      - High frequencies → short time windows (good time resolution, poor frequency resolution).
      - Low frequencies → long time windows (good frequency resolution, poor time resolution).

    Key Characteristics:
    - Multi-resolution analysis: Adapts to different scales.
    - Better suited for non-stationary or transient signals.
    - Captures short-lived features like bursts, edges, or spikes better than STFT.

    Analogy: Like zooming in and out on a signal with a flexible lens—details appear at multiple scales.

    Comparison Table

    | Feature | Spectrogram (STFT) | Wavelet Transform (CWT) |
    |--------|---------------------|-------------------------|
    | Resolution | Fixed | Adaptive (multi-resolution) |
    | Time-Frequency Tradeoff | Yes (fixed window) | No (scale-dependent) |
    | Frequency Analysis | Global (within each window) | Localized (scale-wise) |
    | Best for | Stationary signals | Non-stationary/transient signals |
    | Window Function | Fixed (e.g., Hamming, Hann) | Wavelet (e.g., Morlet, Mexican Hat) |
    | Output | Time-Frequency plot | Time-Scale plot (can be converted to frequency) |

     In Practice


    - Spectrograms are simpler and computationally cheaper, good for general overview.
    - Wavelet transforms give richer detail and are often used in applications like:
      - Biomedical signal analysis (e.g., ECG, EEG)
      - Seismic analysis
      - Fault detection in mechanical systems

    If you're working with signals where the frequency content changes quickly (like engine vibrations, fault signatures, or speech), wavelets often reveal more subtle features than spectrograms.

    https://www.nature.com/articles/s43588-021-00183-z


     



     2905     0      0      0

     Insights into flame flashback phenomenon utilizing a Strut-Cavity flame holder inside scramjet combustor


    Pranay Singeetham  #Advanced Propulsion Systems (APSYS) Lab @Amardip Ghosh

    Understanding upstream flame propagation in scramjets is challenging, particularly concerning flame flashback in a combustor with a novel strut-cavity flame holder. Two-dimensional unsteady Reynolds-averaged Navier–Stokes (URANS) simulations were performed to investigate how Mach number and wall divergence affect flame behavior. The utility of the strut-cavity flame holder was highlighted through a study of its non-reacting flow characteristics. Flow dynamics are significantly altered as the shear layer above the cavity interacts with the downstream hydrogen jet. Shear layer dynamics and fuel-air mixing are improved through key factors such as shock-train behavior, cavity oscillations, and transverse fuel injection. The submerged fuel jet is less exposed to supersonic flow and demonstrates reduced entropy rise, achieving a 16% increase in mixing efficiency compared to standalone struts and a 46% improvement over transverse injection without a flame holder. Thermal choking shifts the shock train upstream, facilitating interactions with the shear layer and enhancing vortex formation, which decreases flow speed and promotes upstream flame propagation. The presence of OH radicals indicates that flame flashback follows a periodic pattern with an initial gradual slope, suggesting effective anchoring. Stability and flashback likelihood are affected by low-speed zones, vortex merging, and wall divergence. At Mach 3, combustion efficiency improves without wall divergence due to increased heat release, while wall divergence prevents flame flashback by sustaining supersonic core flow and managing flow-flame interactions. At higher core flow velocities, flame stabilization occurs at the cavity's separation corner, despite a tendency for upstream propagation, with validation of the URANS results achieved through two-dimensional large eddy simulations.

    https://doi.org/10.1063/5.0236832


     



     1257     0      0      0

     Research Areas


    Amardip Ghosh  #Advanced Propulsion Systems (APSYS) Lab

    Areas of research include combustion oscillations, vortex driven flows, pulsating flows, method of characteristics, combustion sciences etc.As part of our work in high speed combustors, we are studying flame behavior, ignition, stabilization, flashback and mode transition in high speed combustors both with cavity assisted and strut assisted flame stabilization mechanisms. As part of our work on Combustion Instability prediction and control, we are also looking at vortex driven resonant combustion in Gas Turbine combustors. Active combustion control using secondary injection targeting q' oscillation tailoring are being attempted.



     



     1869     0      0      0

     Turbulent Combustion and High Speed Flows


    Amardip Ghosh  #Advanced Propulsion Systems (APSYS) Lab

    As part of our work in high speed combustors, we are studying flame behavior, ignition, stabilization, flashback and mode transition in high speed combustors both with cavity assisted and strut assisted flame stabilization mechanisms. As part of our work on Combustion Instability prediction and control, we are also looking at vortex driven resonant combustion in Gas Turbine combustors. Active combustion control using secondary injection targeting q' oscillation tailoring are being attempted.



     



     6624     1      1      1

     SCRAMJET Test Rig Instrumentation


    Amardip Ghosh  #Advanced Propulsion Systems (APSYS) Lab

    The rig is being instrumentated for transitioning from cold flow supersonic mixing studies to reacting flow mode transition studies.

    Attachments

    1. Minwook Chan PhD Thesis
    2. PhD Thesis


     



 

PUBLISHED COURSES AND LISTS

Lists and Courses from this member

Ionic Propulsion System (7)PublishedPublic
AI tools for productivity (2)PublishedPublic
Reacting Flow Rig Timer Panel (14)PublishedPublic
Heat Transfer for Aerospace Applications (37)PublishedPublic
Innovation Lab (21)PublishedPublic
Active Combustion Control (5)PublishedPublic
Advanced Propulsion Systems (73)PublishedPublic
Rotating Detonation Engines (11)PublishedPublic
Search Engine Optimization (39)PublishedPublic
Space Propulsion System (35)PublishedPublic
 
 

PATENTS

Patents added by this member

No patents have been added by this member yet.