/r/FluidMechanics
Everything that is related to anything that flows. The hub for all the news, questions and mindblowing flow vizualizations! Official Lemmy community: https://discuss.tchncs.de/c/fluidmechanics
Flair your posts for visiblity. Also click below to filter topics:
More details here, but in short:
DateTime (UTC/GMT) | Person(s) | Abstract |
---|---|---|
- | - | - |
Fluid Mechanics
Loosely related
Engineering
General Science
/r/FluidMechanics
I’m absolutely stuck in this problem
The concept of pump head confuses me deeply.
It is described as the maximum height that a pump can elevate a column of liquid.
That makes absolutely no sense to me when we are discussing pipes that are transporting fluid horizontally, or diagonally, or any direction but vertically. Who cares how high a pump elevates a liquid when we are trying to create a pressure difference horizontally???
It’s more confusing when talking about pump curves and the shut off head, where the flow rate of the fluid is 0 and the pump head is at its maximum.
If the whole purpose of a pump is to generate a pressure difference that causes the fluid to flow, then shouldn’t increasing the pressure head of the pump always increase the flow rate???? How possibly could maximizing your pump head result in a 0 flow rate??? That’s just about the most counterintuitive thing I’ve ever heard.
I’m sorry I’m very frustrated. I’ve spent all day thinking about this and trying to make sense of it and despite my best efforts it still looks nothing more than blatant contradiction of common logic. And I also have a headache from this.
Hi all, I've spent a while trying to understand why frictional energy losses cause a decrease in the downstream pressure of a pipe and simultaneously a decrease in downstream velocity, especially in the context of Bernoulli's principle, which correlates a decrease in downstream pressure to an increase in downstream velocity (inverse relationship). So what I'm seeing is a contradiction - Bernoulli's principle states an inverse relationship, but for this case it is directly proportional(simultaneous decrease in both pressure and velocity).
What I've understood is that frictional losses decrease the energy of the fluid. In thermo terms, where work(energy) = -PdV, and Volume is constant, then it makes sense that the decrease in energy must come from the decrease in pressure.
However, I am having trouble merging these 2 perspectives(Energy loss vs Bernoulli's principle) together into alignment so they agree with each other. To me, it's like 2 different perspectives telling me 2 different answers.
If the frictional loss decreases the pressure downstream, and the upstream pressure remains the same, then you have effectively increased the delta P (pressure difference between the 2 points). Since pressure difference is the driving force of fluid flow, then you would expect the velocity downstream to increase. But the frictional loss actually decreases the velocity.
I am very confused now.
PS, specifying downstream and upstream in your explanation helps me a lot, so I would really appreciate answers that are extremely specific and explicit in all assumptions and descriptions.
Thanks all.
I am currently doing my undergraduate thesis on thermoacoustics and for simulation, I'm using DeltaEC. Unfortunately I couldn't find any community or forum based on this software. Is there anyone here who is using DeltaEC or have any experience in this regard? I would really love to connect and have some discussion.
Hey everyone!
I recently completed my M.Phil. in Applied Mathematics, focusing my thesis on fluid dynamics. I'm exploring potential career paths and would love some insights. I have a strong foundation in mathematical modelling of fluid flows.
What types of roles or industries could be a good fit with this background? I'm open to both academic and industry options, especially those that value technical math skills and applied research. If you’ve followed a similar path or know someone who has, I'd love to hear about your journey and any advice you might have!
Thanks in advance! 😊
Hi everyone, I’m very confused about the pressure and velocity when two pumps connect in series and in parallel. Consider two pumps are identical with same flow rate.
I understand the basic concept. When two pumps in series, the flow rate will be the same as a single pump but the total head will be increased (as h_total = h_1 + h_2). When two pumps connect in parallel, the flow rate will be increased but the total head remains unchanged. However, I’m confused about some specific questions related to pressure and velocity.
What would be the pressure of the fluid goes into the pump2? The pressure difference for pump_1 is P1_out - P1_in. When 2 pumps in series, what would be the P2_in to calculate the pressure difference for pump2? Would P2_in same as P1_out or P1_in? If two pumps in parallel, then what is the pressure in for pump2? Would it be P1_in as the fluid goes into two pumps same time?
What would be the velocity change for pump2 in series? Consider two identical pumps with same diameter in and diameter out (let d_in = 2 and d_out = 1). Would velocity in pump1 and pump2 be the same since the flow rate isn’t change? If the diameter for both pumps are the same, which means there is an expansion between pump1 out and pump2 in. Do I need to consider that when calculating velocity for the 2nd pump?
What would be the velocity change for pump2 in parallel? Same conditions as above. Would it be correct if I simply divided flow rate by 2 to calculate the velocity? And would the velocity should be the same between pump1 and pump2?
A lot of questions. Very much appreciate the help!
I'm working on a computational fluid dynamics problem where I need to represent 4D flow data (x,y,z,r) as a pure 3D vector field, where 'r' represents flow rate.
Key Requirements:
- Starting data: (x,y,z) spatial coordinates + r (flow rate)
- Need: F(x,y,z) vector field representation
- Flow rate needs to be directional, not scalar
- Assuming flat Euclidean space for simplicity
- Zero viscosity fluid
Specific Questions:
What's the most efficient mathematical approach to map (x,y,z,r) → F(x,y,z)?
Are there existing tools/methods from naval engineering that handle this kind of mapping?
How would you handle the directional aspects of flow rate in the vector field?
Background: I come from 3D modeling/CAD, trying to build a computational simulation that treats flow rate as a vector component rather than just a scalar value.
Any pointers to relevant literature, mathematical approaches, or similar problems would be greatly appreciated.
I want to design an interface similar to one using a Permatex liquid gasket, where the fluid is squeezed between 2 plates with a specified pressure to create the optimal film thickness. It involves viscosity and surface roughness at least, likely more.
I can define the surface conditions and the fluid properties, including the optimal thickness. How do I calculate the pressure required?
Thanks!
I’m a TA hosting a lengthy exam review session on Halloween, and I’m looking to make it at least somewhat entertaining/engaging.
Does anyone have any interesting ideas for conservation of mass/momentum/energy problems for an intro class for undergraduate civil engineers?
We’re also trying to get students to understand how to apply basic concepts in novel scenarios, so honestly the weirder the better. There’s only so many “fire-hose on angled plate” problems you can do 😅
Could anyone please help me with parts a and b of the problem, would be of great aid. Ive been trying to do this for literally 12+ hours and counting and keep hitting roadblocks. I definitely do know that the only three equations you need to use here are bernoulli, continuity, and momentum.
Hello everyone,
I was wondering if anyone of you wasn't as baffled as I was by a question I got from a colleague :
They're testing a lubrication unit for a big gearbox, and noticed that, at a given oil pressure, the flowrate decreases as oil temperature is increased.
This goes against my mental model of viscosity and flowrate (the experimental data seems to show no flow regime change, with a smooth curve between temperature and flowrate ).
Can anyone think of any lead? I'm at a loss.
Thanks in advance
I'm interested in building a modified version of the bucket air purifier at https://www.youtube.com/watch?v=CN6F5jjC3BI . The airflow goes through the inflow holes at the bottom of the bucket, up through the activated carbon filter inside, and out through the holes at the top of the bucket.
My plan is to use just one bucket, cut a big hole at the bottom of the bucket, and hot glue the bucket to a larger and wider plastic storage tote. The storage tote under the bucket will provide room for wider activated carbon filters and a wider cross-sectional area for the inflow air. (One option is to have the carbon filters on top of the storage tote. Another option is to have a second storage tote underneath the top one, use activated carbon filters at the bottom of the top storage tote, and cut holes in the sides of the bottom storage tote.)
I know that increasing the cross-sectional area for the inflow air will improve the CADR and reduce the noise. What else can I do to make the air purifier quieter? Some questions:
Hey guys! Do you guys have any idea why the A and Q outputs of my model are all imaginary numbers? I tried setting a min for the A to try to make the Flux part of my conservation equations work, but I am still getting imaginary numbers :(
Here's my code:
% Driverfunction Numerical_Scheme_Take_2
% Dimensions of Coronary Arteries in driver[A0, h_cm, R0_cm, artery_length, rho] = dimensions();
% Coefficients in driver% Stiffness coefficient% formula dependent on YM, A, and h_cmYM = 1.5e6; % Young's modulus (dyn/cm^2) for arteries (example value)[PR, Beta] = stiffness_coefficient(YM, A0, h_cm); % Stiffness (Beta), Poisson's Ratio (PR)
% Viscosity coefficient% formula dependent on PR, vp, A0, A, and h_cm[v_s] = viscosity_coefficient(PR, A0, A0, h_cm);
% Viscous Coefficient% formula depent on A, rho, and v_sCv = computeViscousCoefficient(A0, v_s, rho);
% Displaying governing equations in driverdisplay_mass_equation();display_momentum_equation();display_pressure_equation();% Parameters for mesh and schemenum_nodes = 100; % Number of nodes along the artery% Time-Stepping Parametersdx = .001; % PLACEHOLDERdt = 0.001; % Time step (s)total_time = 1; % Total simulation time (s)num_steps = floor(total_time / dt);
% Call initialize variable function[Q, P, A] = initializeFlowVariables(num_nodes);% Call create mesh function[z] = create1DMesh(artery_length, num_nodes);
% Call functions that intialize numerical approximations of the spatial partial derivativesdQ_dx = compute_dQ_dx(Q, z);dA_dt = compute_dA_dt(R0_cm, 1);dBeta_dx = compute_dBeta_dx(Beta, z);dBeta_sqrtA0_dx = compute_dBeta_sqrtA0_dx(Beta, A0, z);d2Q_dx2 = compute_d2Q_dx2(Q, z);
% Call all conservation equations for numerical scheme% Visualizing the equationsdisplayHyperbolicEquation()displayParabolicEquation();
% Defining the variablesU = compute_U(A, Q);F = computeFlux(Q, A, Beta, rho, Cv, dQ_dx);S = computeSourceTerm(1, Q, A, rho, Beta, A0, dBeta_dx, dBeta_sqrtA0_dx);D = computeD(Cv, d2Q_dx2);
% Time-stepping loopfor step = 1:num_steps% Update Q and A using the MacCormack scheme for the hyperbolic part[Q_new, A_new] = macCormackLoop(Q, A, 1, dt, z, Beta, rho, Cv, S);
U_new = crankNicolsonParabolic(U, Cv, dx, dt, num_nodes);% Update Q and A for the next stepQ = Q_new;A = A_new;end
% Plot the variables (Q, P, A) along the artery via the meshclose all; % Close any existing figures
% Create a single figure for all three plotsfigure;% For Flow Rate Qsubplot(3, 1, 1);plot(z, Q, 'r.-');xlabel('Length along the artery (cm)');ylabel('Flow Rate Q');title('Flow Rate Q along the Coronary Artery');grid on;% For Pressure Psubplot(3, 1, 2);plot(z, P, 'b.-');xlabel('Length along the artery (cm)');ylabel('Pressure P');title('Pressure P along the Coronary Artery');grid on;% For Cross-Sectional Area Asubplot(3, 1, 3);plot(z, A, 'g.-');xlabel('Length along the artery (cm)');ylabel('Cross-Sectional Area A');title('Cross-Sectional Area A along the Coronary Artery');grid on;
end
% +-+-+-+-+ Dimensions of Coronary Arteries +-+-+-+-+
function [A0, h_cm, R0_cm, artery_length, rho] = dimensions()% Outputs: initial cross-sectional area at opening of artery based on R0_cm (A0),% wall thickness based on R0_cm (R0_cm), radius to lumen of coronary% artery (R0_cm), density of blood (rho)% Density of bloodrho = 1.10; % density of blood in g/cm^3
% R0_cm for men THIS IS AN INPUT BASED ON PATIENTR0_cm = 0.012; % in cm
% Length of the coronary arteryartery_length = 10; % in cm
% Computes wall thickness based on R0_cm% Constants from Avolio (1980)a = 0.2802; b = -5.053;c = 0.1324; d = -0.1114;
% Equation for the ratio h/R0h_R0_ratio = a * exp(b * R0_cm) + c * exp(d * R0_cm);
% Calculate wall thickness h in cmh_cm = h_R0_ratio * R0_cm;
% Initial Area is also based on RA0 = pi * R0_cm^2;
end
% +-+-+-+-+ Coefficents +-+-+-+-+
% Computes stiffness coefficient based on Young's modulus and vessel geometryfunction [PR, Beta] = stiffness_coefficient(YM, A0, h_cm)% Inputs: Young Modulus (YM), initial cross-sectional area at opening of artery (A0)% Outputs: the stiffness coefficient (Beta), Poisson's Ratio (PR)PR = 0.5; % Poisson's Ratio constant for an incompressible materialBeta = sqrt(pi * YM * h_cm) / ((1 - PR^2) * A0); % The stiffness coefficient
% Display the resultsdisp(['The stiffness coefficient β is: ', num2str(Beta)]);end
% Computes the viscosity coefficientfunction [v_s, vp] = viscosity_coefficient(PR, A0, A, h_cm)% Inputs: Poisson's Ratio constant for an incompressible material (PR), initial cross-sectional area at% opening of artery (A0), current cross sectional area (A), thickness% of arterial wall (h_cm)% Output: the viscosity coefficient (ν_s), Viscosity parameter (phi)
% Set Phivp = 1; % example value
% Calculate the viscosity coefficient ν_sv_s = (sqrt(pi) * vp * h_cm) / (2 * (1 - PR^2) * sqrt(A0 * A));
% Display the resultdisp(['The viscosity coefficient νs is: ', num2str(v_s)]);end
% Computes viscous coefficientfunction Cv = computeViscousCoefficient(A, v_s, rho)% Inputs: Array of cross-sectional area values at each node (A),% viscosity coefficient (v_s), density of blood (rho)% Output: Viscous damping coefficient (Cv)% Calculate the viscous coefficient CvCv = (A .* v_s) ./ rho;
% Display the resultdisp(['The viscous coefficient νs is: ', num2str(Cv)]);end
% +-+-+-+-+ Governing Equations Displayed +-+-+-+-+
% All governing equations are derived by integrating the continuity and Navier Stokes equations along the radius% pdW/dt throughout this whole section refers to partial derivate over time of variable W% pdY/dx throughout this whole section refers to partial derivate over the spatial coordinate x of variable Y% alpha is equal to 1 and Q is equal to A*U
% Conservation of Mass Equation% relates pdA/dt and pdQ/dxfunction display_mass_equation()% Define symbolic variablessyms A(x, t) Q(x, t)% Define the mass conservation equationeqn = diff(A, t) + diff(Q, x) == 0;% Display the symbolic equationdisp('Conservation of Mass Equation:')pretty(eqn);end
% Conservation of Momentum Equation% relates pdQ/dt and pdP/dxfunction display_momentum_equation()% Define symbolic variablessyms Q(x, t) A(x, t) P(x, t) rho Cf x talpha = sym('alpha'); % Use 'sym' to define 'alpha' as a symbolic variable% Define the momentum equationeqn = diff(Q, t) + diff(alpha * Q^2 / A, x) + A * rho * diff(P, x) == Cf * Q / A;% Display the symbolic equationdisp('Conservation of Momentum Equation:')pretty(eqn);end
% Tube Flow Law% relates pdA/dt to P at time steps% not technically governing but by relating A and P it closes the systemfunction display_pressure_equation()% Define symbolic variablessyms P Pext A A0 nus t % All except 'beta'beta = sym('beta'); % Use 'sym' for 'beta' to avoid conflict
% Define the equationeqn = P == Pext + beta * (sqrt(A) - sqrt(A0)) + nus * diff(A, t);% Display the symbolic equationdisp('Tube Flow Law:')pretty(eqn);end
% +-+-+-+-+ Initialize all Variables +-+-+-+-+
function [Q, P, A] = initializeFlowVariables(num_nodes)% Inputs: Number of nodes (num_nodes)% Outputs: Initialized arrays for flow rate (Q), pressure (P), and cross-sectional area (A)
% Example initial values for flow rate, pressure, and areaQ = linspace(1, 0.5, num_nodes); % Flow rate from 1 to 0.5P = linspace(80, 60, num_nodes); % Pressure from 80 to 60A = linspace(1, 0.5, num_nodes); % Area from 1 to 0.5end
% +-+-+-+-+ Numerical Scheme to Solve Governing +-+-+-+-+% The scheme solves the equations displayed above
% +-+ First define the mesh +-+% The mesh consists of the discrete points (nodes) along the length of the section of the coronary artery% Each node represents a location where the flow variables (pressure, velocity, etc.) are computed% The section of artery we are modeling can be represented as a straight line in 1D because in 3D it's a pipefunction [z] = create1DMesh(artery_length, n_nodes)% Inputs: the length of the coronary artery (artery_length), the number of nodes along the length (n_nodes)% Outputs: 1D array of positions along the length of the artery (z)% Generate 1D grid points along the arteryz = linspace(0, artery_length, n_nodes); % Positions along the lengthend
% +-+ Computations of the Partial Derivatives +-+
% Function to compute dQ/dx using central difference method based on the integral definitionfunction dQ_dx = compute_dQ_dx(Q, z)num_nodes = length(Q);dQ_dx = zeros(num_nodes, 1); % Initialize the array for derivativesdx = z(2) - z(1); % Spatial step size
% Central difference for interior nodesfor i = 2:num_nodes-1dQ_dx(i) = (Q(i+1) - Q(i-1)) / (2 * dx);end
% Forward difference for the first nodedQ_dx(1) = (Q(2) - Q(1)) / dx;
% Backward difference for the last nodedQ_dx(num_nodes) = (Q(num_nodes) - Q(num_nodes-1)) / dx;end
% Function to compute dA/dt based on area definitionfunction dA_dt = compute_dA_dt(R, dR_dt)% Inputs: Radius R and its time derivative dR_dt% Output: Time derivative of the areadA_dt = 2 * pi * R .* dR_dt;end
% Function to compute dBeta/dx when Beta is constant (scalar)function dBeta_dx = compute_dBeta_dx(Beta, z)% If Beta is constant, the derivative is zerodBeta_dx = zeros(length(z), 1);end
% Function to compute d(Beta * sqrt(A0))/dx when Beta is constantfunction dBeta_sqrtA0_dx = compute_dBeta_sqrtA0_dx(Beta, A0, z)% If Beta and A0 are constant, the derivative is zerodBeta_sqrtA0_dx = zeros(length(z), 1);end
% Function to compute second derivative of Q with respect to x for parabolic equationfunction d2Q_dx2 = compute_d2Q_dx2(Q, z)num_nodes = length(Q);d2Q_dx2 = zeros(num_nodes, 1); % Initialize the array for second derivativesdx = z(2) - z(1); % Spatial step size
% Central difference for interior nodesfor i = 2:num_nodes-1d2Q_dx2(i) = (Q(i+1) - 2*Q(i) + Q(i-1)) / dx^2;end
% Boundary conditions (second derivative is zero at the boundaries)d2Q_dx2(1) = 0;d2Q_dx2(num_nodes) = 0;end
% +-+ Write the governing equations in conservation form +-+% Starting from governing all values are redefined as U, F, S, and D% Then spilt into a hyperbolic and a parabolic equation
% Visualizing equations% Function to display the hyperbolic equationfunction displayHyperbolicEquation()% Define symbolic variablessyms U(x, t) F(x, t) S(x, t)% Define the hyperbolic equationeqn = diff(U, t) + diff(F, x) == S;% Display the equationdisp('Hyperbolic Equation:');pretty(eqn);end
% Function to display the parabolic equationfunction displayParabolicEquation()% Define symbolic variablessyms U(x, t) D(x, t)% Define the parabolic equationeqn = diff(U, t) == D;% Display the equationdisp('Parabolic Equation:');pretty(eqn);end
% Defining U, F, S, and D
% U is the conservative variable% U is a num_nodes-by-2 matrix, where:% - The first column represents the cross-sectional area A at each node% - The second column represents the flow rate Q at each node% This function creates the U matrix to store both A and Q for all points% Each row represents a node, and each column corresponds to a different variablefunction U = compute_U(A, Q)% Inputs: Array of flow rate values at each node (Q), Array of% cross-sectional area values at each node (A)% Output: U% Define UU = [A.' Q.']; % The .' operator transposes the arrays to make them column vectorsend% F is the corresponding flux% Computes Ffunction F = computeFlux(Q, A, Beta, rho, Cv, dQ_dx)% Inputs: Array of flow rate values at each node (Q), Array of% cross-sectional area values at each node (A), Stiffness coefficient% (Beta), Density of blood (rho), Viscous damping coefficient (Cv),% Array of spatial derivatives of flow rate (dQ_dx)% Output: Flux (F)% Conservative Flux calculationFc1 = Q; % First component of conservative flux (Q)Fc2 = (Q.^2 ./ A) + (Beta ./ (3 * rho)) .* A.^(3/2); % Second component% Ensure both components are column vectorsFc1 = Fc1(:);Fc2 = Fc2(:);% Combine conservative flux components into an arrayFc = [Fc1, Fc2];
% Viscous Flux calculationFv1 = zeros(length(Q), 1); % First component of viscous flux (array of zeros)Fv2 = -Cv .* dQ_dx; % Second component (same dimensions as Q and dQ_dx)% Ensure both components are column vectorsFv1 = Fv1(:);Fv2 = Fv2(:);% Combine viscous flux components into an arrayFv = [Fv1, Fv2];
% Check dimensions before addingif size(Fc, 1) ~= size(Fv, 1) || size(Fc, 2) ~= size(Fv, 2)error('Dimension mismatch: Fc and Fv must have the same size.');end
% Total flux is the sum of conservative and viscous fluxesF = Fc + Fv;end
% S is the source term% Computes Sfunction S = computeSourceTerm(Cf, Q, A, rho, Beta, A0, dBeta_dx, dBeta_sqrtA0_dx)% Inputs: Array of flow rate values at each node (Q), Array of% cross-sectional area values at each node (A), Stiffness coefficient% (Beta), Density of blood (rho), Viscous damping coefficient (Cv),% Initial cross-sectional area (A0), Spatial derivative of beta (dBeta_dx), Spatial derivative of (beta * sqrt(A0)) (dBeta_sqrtA0_dx)% Output: Source term array (S)% Compute the second component of the source termsource_term_2 = - Cf .* (Q ./ A) + (A ./ rho) .* (dBeta_sqrtA0_dx - (2/3) * sqrt(A) .* dBeta_dx);% Construct the source term arrayS = [zeros(size(A)); source_term_2];endfunction D = computeD(Cv, d2Q_dx2)% Inputs: Viscous damping coefficient; scalar (CV), Array of second% spatial derivatives of flow rate at each node; 1D array (d2Q_dx2),% Output: Array representing the parabolic term at each node 1D array; (D)% Compute the parabolic term DD = [0; Cv .* d2Q_dx2];end
% +-+ Boundary Conditions +-+
% +-+ Implement Loops +-+
% Implement Loops for MacCormack Scheme based on the provided predictor and corrector stepsfunction [Q_new, A_new] = macCormack_loop(Q, A, dt, dx, Beta, rho, Cv, S)% Initialize variablesnum_nodes = length(Q);% Predictor stepQ_pred = Q; % Initialize with current valuesA_pred = A;% Compute flux and source term for current stepF = computeFlux(Q, A, Beta, rho, Cv, compute_dQ_dx(Q, dx));S_curr = computeSourceTerm(1, Q, A, rho, Beta, 1, zeros(size(A)), zeros(size(A)));% Predictor step for internal nodesfor i = 2:num_nodes-1Q_pred(i) = Q(i) - (dt / dx) * (F(i+1) - F(i)) + dt * S_curr(i);A_pred(i) = A(i) - (dt / dx) * (F(i+1, 2) - F(i, 2));end% Boundary conditions for predictor stepQ_pred(1) = Q(1); % Left boundary: fixed inflow conditionQ_pred(end) = Q(end-1); % Right boundary: zero-gradient condition% Corrector stepF_pred = computeFlux(Q_pred, A_pred, Beta, rho, Cv, compute_dQ_dx(Q_pred, dx));S_pred = computeSourceTerm(1, Q_pred, A_pred, rho, Beta, 1, zeros(size(A_pred)), zeros(size(A_pred)));% Corrector step for internal nodesQ_new = Q; % Initialize with current valuesA_new = A;for i = 2:num_nodes-1Q_new(i) = 0.5 * (Q(i) + Q_pred(i) - (dt / dx) * (F_pred(i) - F_pred(i-1)) + dt * S_pred(i));A_new(i) = 0.5 * (A(i) + A_pred(i) - (dt / dx) * (F_pred(i, 2) - F_pred(i-1, 2)));end% Boundary conditions for corrector stepQ_new(1) = Q(1); % Left boundary: fixed inflow conditionQ_new(end) = Q_new(end-1); % Right boundary: zero-gradient condition% Check for NaN or complex valuesif any(isnan(Q_new)) || any(imag(Q_new) ~= 0)error('NaN or complex number detected in Q at step %d', step);endend
% Parabolic Equation Solver (Crank-Nicolson Scheme)function U_new = crankNicolsonParabolic(U, Cv, dx, dt, num_nodes)% Crank-Nicolson setupalpha = Cv * dt / (2 * dx^2);% Create matrices A and BA = diag((1 + 2 * alpha) * ones(num_nodes, 1)) + ...diag(-alpha * ones(num_nodes-1, 1), 1) + ...diag(-alpha * ones(num_nodes-1, 1), -1);B = diag((1 - 2 * alpha) * ones(num_nodes, 1)) + ...diag(alpha * ones(num_nodes-1, 1), 1) + ...diag(alpha * ones(num_nodes-1, 1), -1);
% Apply boundary conditions (e.g., Dirichlet)A(1, :) = 0; A(1, 1) = 1;A(end, :) = 0; A(end, end) = 1;B(1, :) = 0; B(1, 1) = 1;B(end, :) = 0; B(end, end) = 1;
% Update UU_new = A \ (B * U); % Solve using matrix inversionend
% +-+-+-+-+ Calcuting Diminishing Area of Coronary Arteries due to Plaque Growth +-+-+-+-+
% ODEs fro plaque growthfunction dydt = plaqueODEs(t, y, a, b, c, E, d, e, f, sigma, vM, vLox, vm, vF)% Variablesm = y(1); % MonocytesM = y(2); % MacrophagesL = y(3); % Oxidized LDLF = y(4); % Foam cellsR = y(5); % Artery radius% ODEs (rescaled)dm_dt = (a*L/((1+sigma)*(1+L))-E-c)*m; % change in monocytesdM_dt = c * m - (b * M * L / (1 + L)); % change in macrophagesdL_dt = (d * m / (f + m)) - e * M * L - L; % change in LDLdF_dt = (b * M * L / (1 + L)); % change in foam cells
% Plaque volume rate of changedV_dt = vM * dM_dt + vLox * dL_dt + vm * dm_dt + vF * dF_dt;
% ODE for artery radius based on plaque volumedR_dt = -dV_dt / (2 * pi * R);% Return derivativesdydt = [dm_dt; dM_dt; dL_dt; dF_dt; dR_dt];end
I am really desperate. Does it affect anything? I really need help
I'm interested to make a flume channel to do play around with capillary waves in water (this is just a home project -- and I know nothing of fluid dynamics (yet)). I want to drive the waves at one end, and ideally there won't be significant reflections of the waves off the far end. I'm wondering what the easiest way to absorb the waves on the far side would be. Surely there is some standard I can draw from, but I'm having trouble digging anything up. I can imagine a large sponge or other porous material at one end that sort of washes all the waves into turbulence, etc. Any thoughts? Thanks!
Edit: OK, seeing references to wedges of foam, mesh, etc... sounds like I'm on the right track. E.g. "This absorption is usually in the form of wedges of fine mesh material, rather like the wedges used for sound absorption in an acoustic anechoic chamber. Alternatively it is possible to absorb the waves with a second paddle at the end of the flume fitted with force transducers which detect the incoming waves." That's for a large tank, but I've seen similar references to smaller flume channels. I'm not going to be doing anything active, but it's reassuring to know I'm not lost in the weeds.
A fluid has a solute viscosity of 0.048 Pas and a specific gravity of 0.913. For the flow of such a fluid over a flat solid surface, the velocity at a point 75 mm away from the surface is 1.125 m/s. Calculate the shear stresses at the solid boundary, at points 25 mm, 50 mm, and 75 mm away from the boundary surface. Assume (i) a linear velocity distribution and (ii) a parabolic velocity distribution with the vertex at the point 75 mm away from the surface where the velocity is 1.125 m/s.
Hi everyone,
I've recently been offered a PhD position in Scientific Machine Learning, where I'll be working on solving PDEs (Partial Differential Equations) using machine learning techniques. My background is in applied mathematics (master's degree) and statistics (bachelor's degree), so I'm solid on the math side (PDEs, ML models, etc.).
The catch? I never had a proper course in physics during my studies. While I feel confident with the mathematical foundations, I often feel like I'm missing the intuition that a solid physics background would provide.
I want to self-study the physics I need in the most efficient way possible. What areas of physics should I focus on, and what resources (books, courses, videos) would you recommend to quickly build the intuition I'll need for this PhD?
Thanks for your help!
Consider a "simple engine" in which fuel is added to the air and burned and exhausted through a convergent-divergent nozzle. The CD nozzle accelerates the flow and thins the boundary layers, and the net result of the pressure forces acting on the walls of the CD nozzle result in the thrust on the engine.
If you replace the CD nozzle with a constant area nozzle, can you still obtain thrust?
I have a uni project where i must test something in a wind tunnel for lift and drag and so on. Any ideas on what to do?
I have build a U-Tube Manometer using a 16mm Inner Diameter tube. One end is sealed with 1 Bar of pressure added to it. According to the hydrostatic pressure equation given as: P = pgh, where P is the pressure in difference in Pascal, p is the fluid density, g is gravity and h is the height displacement between the columns, if I use water with a density of 1000 kg/m^3 and I add 1.2bar of pressure to the open side, I should have a displacement of about 2.04m. However, I've tried it and only have about 15cm displacement (which is good in my case) but I want to know how to calculate it.
I've searched around but was unable to find any info.
I am assuming that as the pressure increases on the open side and the liquid moves upwards in the sealed side, that the air compresses and therefore the liquid does not move that much. Which I also believe has something to do with the volume/ID of the pipe.
Can someone please provide me with an equation to calculate the displacement of the liquid column of a sealed U-Tube manometer or point me in the right direction.
So I'm currently setting up a pipe flow system for transporting proteins with a micro diaphragm pump.
My volume flow is about 6 mL/min and the Reynolds number is below 50.
I am asked to increase the diffusion in the system.
My supervisor is saying that with a higher volume flow / velocity, diffusion will decrease.
Is this true, considering that the Péclet number indicates that with a higher velocity the diffusion coefficient will increase? Or am I misunderstanding something?
Where can i get the solution manual for Fluid Mechanics: Fundamental and Application 3rd Edition by cengel and cimbala 2014