This repository has been archived by the owner on Mar 14, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
LammpsDataPhysicalProp.m
47 lines (33 loc) · 1.57 KB
/
LammpsDataPhysicalProp.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
function [varargout] = LammpsDataPhysicalProp(varargin)
%% Description
% Command:
%
% [varargout] = LammpsDataPhysicalProp(data,mass);
%
% Input:
%
% data: structure created by LammpsDataReadDump(dump_name,t_sim,dump_prop,dump_col)
% mass: mass of atom in data struture. Currently, only unique atom data
% struture are supported.
%
% Current Supported Physical Properties:
%
% Momentum, Kinetic Energy (Total), Temparture , and Density
%% Physical Variable Setting
data_constants = LammpsDataConstants();
%% Calculating Momentum
Momentum = varargin{1}.vel .* varargin{2};
%% Calculating Kinetic Energy
E_kine = Momentum .^ 2 ./ (varargin{2}) ./ 2;
%% Calculating Potential Energy
%% Calculating Pressure
%% Calculating Temp
Temp = squeeze(sum(E_kine)) ./ data_constants.k_b .* (2/3) ./(varargin{1}.num_atoms-1);
Temp = sum(Temp);
%% Calculating Rho
Rho = varargin{1}.num_atoms * varargin{2} / (varargin{1}.box_volume);
%% -----------------------Output-----------------------
varargout{1}.Momentum = Momentum .* (data_constants.g2kg/data_constants.n_a) .* (data_constants.an2m/data_constants.fs2s);
varargout{1}.E_kine = E_kine .* (data_constants.g2kg/data_constants.n_a) .* (data_constants.an2m/data_constants.fs2s).^2;
varargout{1}.Temp = Temp .* (data_constants.g2kg/data_constants.n_a) .* (data_constants.an2m/data_constants.fs2s).^2;
varargout{1}.Rho = Rho * data_constants.gm2kg / data_constants.an2m^3;