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.
Lists and Courses from this member
Ionic Propulsion System (7) | Published | Public |
AI tools for productivity (2) | Published | Public |
Reacting Flow Rig Timer Panel (14) | Published | Public |
Heat Transfer for Aerospace Applications (37) | Published | Public |
Innovation Lab (21) | Published | Public |
Active Combustion Control (5) | Published | Public |
Advanced Propulsion Systems (73) | Published | Public |
Rotating Detonation Engines (11) | Published | Public |
Search Engine Optimization (39) | Published | Public |
Space Propulsion System (35) | Published | Public |
Documents uploaded by this member
![]() |
![]() |
![]() |
![]() |
![]() |
Lists published by this member
Documents uploaded by this member
![]() |
![]() |
![]() |
![]() |
![]() |
Patents added by this member
Webresources recommended by this member
PhD Thesis - Role of Density Gradient in LRE... |
Doctoral Advisor - Dr. Kenneth Yu... |
Role of Density Gradient in LRE Combustion... |
Dynamic Pressure Characterization... |
Resume (LinkedIn)... |
List and page updates
Amardip Ghosh added a book Introduction to Flight to Good Books On Aerodynamics | ||
Amardip Ghosh added a book Fundamentals of Aerodynamics to Good Books On Aerodynamics | ||
Amardip Ghosh added a book Incompressible Flow to Good Books On Aerodynamics | ||
Amardip Ghosh added a book The Elements of Aerofoil and Airscrew Theory to Good Books On Aerodynamics | ||
Amardip Ghosh added a book Modern Compressible Flow: With Historical Perspective to Good Books On Aerodynamics |
People who have helped build collections with this member
 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.
 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 ?
 1467     0      0      0
Bychkov Limit (ChatGPT, Google AI)
Amardip Ghosh #Advanced Propulsion Systems (APSYS) Lab
 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.
 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.
 1257     0      0      0
Research Areas
Amardip Ghosh #Advanced Propulsion Systems (APSYS) Lab
 1869     0      0      0
Turbulent Combustion and High Speed Flows
Amardip Ghosh #Advanced Propulsion Systems (APSYS) Lab
 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