Update your activity Here
Update your activity Here
Update your activity Here
Update your activity Here
Update your activity Here
Update your activity Here
Update your activity Here
Today I attended a public lecture organised by Pachimbongo-Bigyan-Moncho
21-September-2025, at Kotulpur Girls' High School (Sarojini Balika Vidyalaya)
https://www.paschimbangavigyanmancha.org
January-2024
Some useful links:
IQAC Netaji Mahavidyalaya (Unofficial)
Physics Department NMV (NMV Website: official)
Physics Department NMV (Unofficial Google Site)
SWAYAM Course [https://swayam.gov.in/]
https://swayam.gov.in/
http://epgp.inflibnet.ac.in/
https://www.swayamprabha.gov.in/
http://ugcmoocs.inflibnet.ac.in/
other resources will be added here
Virtual Lab [do physics experiments from home :) ]
Delhi University B.Sc Physics Question Paper
Dr. Atanu Kumar (Chandannager Govt College) [https://akphysicscgr.blogspot.com/]
Department of Physics, Netaji Mahavidyalaya
Department of Physics, Hooghly Women's College (webpage under preparation) [click here]
Blog [personal]
====================================
My all books (In my Almirah)
List of Books for New CBCS syllabus 2017
Important Books in Condensed Matter Physics[here]
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
# 1. Physics Parameters
h0 = 10 # Initial height (m)
vx_red = 2 # Horizontal velocity of red ball (m/s)
g = 9.81 # Gravity (m/s^2)
# 2. Time and Position Calculations
t_flight = np.sqrt(2 * h0 / g)
t = np.linspace(0, t_flight, num=60)
# Red Ball data (Projectile)
x_red = vx_red * t
y_red = h0 - 0.5 * g * t**2
# Velocity components for speed: v = sqrt(vx^2 + vy^2)
vy_red = -g * t # Vertical velocity changes with time
speed_red = np.sqrt(vx_red**2 + vy_red**2)
# Black Ball data (Free Fall)
y_black = h0 - 0.5 * g * t**2
speed_black = g * t # vx is 0, so speed is just |vy|
# 3. Setup Plot
fig, ax = plt.subplots(figsize=(10, 6))
ax.set_xlim(-1, max(x_red) + 2)
ax.set_ylim(-1, h0 + 2)
ax.set_title("Projectile Physics: Speed & Range Tracking")
# Visual elements
ball_black, = ax.plot([], [], 'ko', markersize=20)
ball_red, = ax.plot([], [], 'ro', markersize=20)
trail_red, = ax.plot([], [], 'r--', alpha=0.993)
# Text labels for data
stats_text = ax.text(0.05, 0.95, '', transform=ax.transAxes,
bbox=dict(facecolor='white', alpha=0.5), verticalalignment='top')
# 4. Animation Logic
def update(frame):
# Update positions
ball_black.set_data([0], [y_black[frame]])
ball_red.set_data([x_red[frame]], [y_red[frame]])
trail_red.set_data(x_red[:frame], y_red[:frame])
# Update text display
current_range = x_red[frame]
s_red = speed_red[frame]
s_black = speed_black[frame]
stats_text.set_text(
f"Time: {t[frame]:.2f}s\n"
f"--- Red Ball (Projectile) ---\n"
f"Range: {current_range:.2f} m\n"
f"Speed: {s_red:.2f} m/s\n"
f"--- Black Ball (Free Fall) ---\n"
f"Speed: {s_black:.2f} m/s"
)
return ball_black, ball_red, trail_red, stats_text
ani = FuncAnimation(fig, update, frames=len(t), blit=True, interval=50)
plt.grid(True, linestyle=':', alpha=0.6)
plt.show()
Online Class Routine [Joining Link: https://meet.google.com/qjm-gwsy-exj]
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
# 1. Physics Setup
g = 9.81 # Gravity (m/s^2)
h_air = 10 # Fall distance in air (m)
h_water = 15 # Depth of water (m)
dt = 0.05 # Time step
# Phase 1: Air (Acceleration)
v_impact = np.sqrt(2 * g * h_air) # Velocity when hitting water
t_air_total = v_impact / g
t_air = np.arange(0, t_air_total, dt)
y_air = (h_air + h_water) - (0.5 * g * t_air**2)
v_air = g * t_air
# Phase 2: Water (Uniform Velocity)
t_water_total = h_water / v_impact
t_water = np.arange(0, t_water_total + dt, dt)
y_water = h_water - (v_impact * t_water)
v_water = np.full_like(t_water, v_impact)
# Combine datasets for the animation
y_all = np.concatenate([y_air, y_water])
v_all = np.concatenate([v_air, v_water])
# 2. Visual Setup
fig, ax = plt.subplots(figsize=(5, 8))
ax.set_xlim(-1, 1)
ax.set_ylim(0, h_air + h_water + 2)
ax.set_xticks([])
ax.set_ylabel("Height (m)")
# Background colors for Air vs Water
ax.axhspan(h_water, h_air + h_water + 2, color='skyblue', alpha=0.2, label='Air')
ax.axhspan(0, h_water, color='royalblue', alpha=0.4, label='Water')
ax.legend(loc='upper right')
ball, = ax.plot([], [], 'ro', ms=15)
vel_label = ax.text(0.2, 0, '', fontsize=12, fontweight='bold', color='darkred')
def init():
ball.set_data([], [])
vel_label.set_text('')
return ball, vel_label
def update(frame):
y = y_all[frame]
v = v_all[frame]
ball.set_data([0], [y])
vel_label.set_position((0.2, y))
vel_label.set_text(f'{v:.2f} m/s')
return ball, vel_label
ani = FuncAnimation(fig, update, frames=len(y_all),
init_func=init, blit=True, interval=50, repeat=True)
plt.show()
Attended
A Two-day Workshop
on
Advanced Geoinformatics Techniques for Geography
(09 ̶ 10 April, 2026)
Organized by:
Department of Geography in Association with IQAC
Netaji Mahavidyalaya
Arambagh, Hooghly
West Bengal, India
Python Code for Projectile Motion Animation
(Showing in Online class : 06-04-2026)
import numpy as np
import matplotlib.pyplot as plt
import time
g = 9.8
v0 = 20
angle = 45
theta = np.radians(angle)
t_flight = 2 * v0 * np.sin(theta) / g
t = np.linspace(0, t_flight, 100)
x = v0 * np.cos(theta) * t
y = v0 * np.sin(theta) * t - 0.5 * g * t**2
plt.ion()
fig, ax = plt.subplots()
for i in range(len(t)):
ax.clear()
ax.set_xlim(0, max(x) + 1)
ax.set_ylim(0, max(y) + 1)
ax.plot(x[:i], y[:i], 'b-') # trajectory
ax.plot(x[i], y[i], 'ro', markersize=20) # BIG RED DOT
plt.xlim(0, 60) # set t range from 0 to 20
plt.title("Projectile Motion")
plt.xlabel("Distance")
plt.ylabel("Height")
plt.pause(0.1)
plt.ioff()
plt.show()
Python Code for Sem-2: Mechanics Simulation:
(Showing in Online class : 06-04-2026)
Sun-Earth-Moon Rotation
=============================
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
# Parameters
R = 2.0 # Red bead orbit radius
d = 0.1 # Blue bead distance from red bead
r_g = 0.5 # Green bead orbit radius around red bead
omega_main = 1.0 # Main rotation frequency
omega_orbit = 2.0 # Green bead's own rotation frequency
dt = 0.015
# Lists to store trajectory points
trail_red_x, trail_red_y = [], []
trail_blue_x, trail_blue_y = [], []
trail_green_x, trail_green_y = [], []
# Figure
fig, ax = plt.subplots()
ax.set_aspect('equal')
ax.set_xlim(-3, 3)
ax.set_ylim(-3, 3)
# Orbital reference circle
theta = np.linspace(0, 2*np.pi, 3000)
ax.plot(R*np.cos(theta), R*np.sin(theta), 'k--')
# Beads
red_bead, = ax.plot([], [], 'ro', markersize=12)
blue_bead, = ax.plot([], [], 'bo', markersize=8)
green_bead, = ax.plot([], [], 'go', markersize=10)
# Connecting rods
rod_rb, = ax.plot([], [], 'gray', linewidth=2)
rod_rg, = ax.plot([], [], 'gray', linewidth=2)
# Trails (grey lines)
trail_red_line, = ax.plot([], [], color='gray', linewidth=0.5)
trail_blue_line, = ax.plot([], [], color='gray', linewidth=1)
trail_green_line, = ax.plot([], [], color='green', linewidth=3)
def update(frame):
t = frame * dt
# --- Main bead rotation ---
angle = omega_main * t
# Red bead position
x_r = R * np.cos(angle)
y_r = R * np.sin(angle)
# Blue bead (rigid link)
x_b = x_r + d * np.cos(angle)
y_b = y_r + d * np.sin(angle)
# Green bead (rotating around red)
phi = omega_orbit * t
x_g = x_r + r_g * np.cos(phi)
y_g = y_r + r_g * np.sin(phi)
# Update positions
red_bead.set_data([x_r], [y_r])
blue_bead.set_data([x_b], [y_b])
green_bead.set_data([x_g], [y_g])
# Update rods
rod_rb.set_data([x_r, x_b], [y_r, y_b])
rod_rg.set_data([x_r, x_g], [y_r, y_g])
# Add trail points
trail_red_x.append(x_r); trail_red_y.append(y_r)
trail_blue_x.append(x_b); trail_blue_y.append(y_b)
trail_green_x.append(x_g); trail_green_y.append(y_g)
# Update trail lines
trail_red_line.set_data(trail_red_x, trail_red_y)
trail_blue_line.set_data(trail_blue_x, trail_blue_y)
trail_green_line.set_data(trail_green_x, trail_green_y)
return red_bead, blue_bead, green_bead, rod_rb, rod_rg, trail_red_line, trail_blue_line, trail_green_line
ani = FuncAnimation(fig, update, frames=1000, interval=30, blit=True)
plt.title("Three Beads with Motion Trails")
plt.show()
=================================================================================
27.03.2026
Just finished reading the Old Classic by Rabindranath Tagore. The book was written around 1902-1903 after he moved (1901) to Shantiniketan. The masterpiece was translated in English two times. First by Surendranath Tagore (1914) and Krishna Kripalani (1959).
L = 6; // number of spins
J = -1.0; // Ising coupling
h = 1.0; // transverse field
g = 1.0; // longitudinal field
dim = 2^L;
// range of h
theta_min = 0.0;
theta_max = %pi/2.0;
dt = 0.01;
// open file
filename = "theta-vs-eg.dat";
fd = mopen(filename, "w");
// loop over h
for theta = theta_min:dt:theta_max
H = zeros(dim,dim);
// loop over basis states
for state = 0:dim-1
row = state + 1;
// -------- diagonal part (J * sigma_z sigma_z + g* sigma_z) --------
energy = 0;
for i = 0:L-2
if bitget(state,i+1) then
si = 1;
else
si = -1;
end
if bitget(state,i+2) then
sj = 1;
else
sj = -1;
end
energy = energy + J*si*sj;
end
// longitudinal field term
for i = 0:L-1
si = 2*bitget(state,i+1) - 1;
energy = energy + g*cos(theta)*si;
end
H(row,row) = energy;
// -------- transverse field (sigma_x) --------
for i = 0:L-1
flipped = bitxor(state, 2^i); // flip spin i
col = flipped + 1;
H(row,col) = H(row,col) + h*sin(theta);
end
end
// eigenvalues
[V,D] = spec(H);
eigvals = real(diag(D));
// write one line: h + all eigenvalues
mfprintf(fd, "%f ", theta);
for k = 1:dim
mfprintf(fd, "%f ", eigvals(k));
end
mfprintf(fd, "\n");
// write to file
// for k = 1:length(eigvals)
// mfprintf(fd, "%f %f\n", h, eigvals(k));
// end
end
mclose(fd);
//disp("Data saved to filet");
data = read("theta-vs-eg.dat", -1, dim+1); // 5 = 1 + number of eigenvalues
h = data(:,1);
// plot ALL eigenvalues together
plot(h, data(:,2:$));
// eigenvalues and eigenvectors
//[V,D] = spec(H);
//disp("Eigenvalues:");
//disp(diag(D));
https://sites.google.com/site/somenathspsjnu/home/NewsLinksNotice
My first Job at Hooghly Women's College.