Commit 12599ded authored by gsaxena's avatar gsaxena

A new commit before adding BioFVM_3D_tumor_X.cpp example.

parent 011ee4e2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% If you use BioFVM in your project, please cite BioFVM and the version %
% number, such as below: %
% %
% We solved the diffusion equations using BioFVM (Version 1.1.6) [1] %
% %
% [1] A. Ghaffarizadeh, S.H. Friedman, and P. Macklin, BioFVM: an efficient %
% parallelized diffusive transport solver for 3-D biological simulations,%
% Bioinformatics 32(8): 1256-8, 2016. DOI: 10.1093/bioinformatics/btv730 %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% BSD 3-Clause License (see https://opensource.org/licenses/BSD-3-Clause) %
% %
% Copyright (c) 2015-2017, Paul Macklin and the BioFVM Project %
% All rights reserved. %
% %
% Redistribution and use in source and binary forms, with or without %
% modification, are permitted provided that the following conditions are %
% met: %
% %
% 1. Redistributions of source code must retain the above copyright notice, %
% this list of conditions and the following disclaimer. %
% %
% 2. Redistributions in binary form must reproduce the above copyright %
% notice, this list of conditions and the following disclaimer in the %
% documentation and/or other materials provided with the distribution. %
% %
% 3. Neither the name of the copyright holder nor the names of its %
% contributors may be used to endorse or promote products derived from this %
% software without specific prior written permission. %
% %
% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS %
% "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED %
% TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A %
% PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER %
% OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, %
% EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, %
% PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR %
% PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF %
% LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING %
% NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS %
% SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
file_name='initial_concentration.mat';
x=1;y=2;z=3;
needed_plane=[x,y];
crossesction_index=setdiff([1,2,3], needed_plane);
labels={'x','y','z'};
load(file_name);
for i=5:size(multiscale_microenvironment,1)
m=multiscale_microenvironment;
temp= unique(sort(m(crossesction_index,:)));
if length(temp)==1 %2D
temp_median_index=1;
else
temp_median_index=floor(length(temp)/2);
end
temp_median= temp(temp_median_index);
m=m(:,m(crossesction_index,:)==temp_median);
tempx= unique(sort(m(needed_plane(1),:)));
stepx= abs(tempx(1)-tempx(2));
minx=tempx(1)-stepx/2;
maxx=tempx(end)+stepx/2;
tempy= unique(sort(m(needed_plane(2),:)));
stepy= abs(tempy(1)-tempy(2));
miny=tempy(1)-stepy/2;
maxy=tempy(end)+stepy/2;
num_rows= length(tempx);
num_cols= length(tempy);
% scaling the x values to range [1:numrows], the y values to range [1:numcols]
x_scaled= 1+ floor(num_rows*((m(needed_plane(1),:)-minx)/(maxx-minx)));
y_scaled= 1+ floor(num_cols*((m(needed_plane(2),:)-miny)/(maxy-miny)));
c1=sparse(y_scaled, x_scaled,m(i,:));
full_matrix=full(c1);
figure
imagesc(tempx, tempy, full_matrix(end:-1:1,:))
shading flat
colorbar('FontSize', 14)
title(['substrate' num2str(i-4)], 'FontSize', 14)
axis image
h = colorbar();
h1 = get( h , 'ylabel' );
set( h1 , 'string' , 'concentration' )
set( h1, 'fontsize', 12 )
set(gca,'XTick',minx:(maxx-minx)/2:maxx)
set(gca,'YTick',miny:(maxy-miny)/2:maxy)
set(gca,'YTickLabel',{num2str(maxy),num2str((maxy+miny)/2),num2str(miny)})
set(gca,'XTickLabel',{num2str(minx),num2str((minx+maxy)/2),num2str(maxx)})
xlabel([labels{needed_plane(1)},' (\mum)'])
ylabel([labels{needed_plane(2)},' (\mum)'])
end
......@@ -45,7 +45,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
file_name='output_4.000000_0.000100_10.000000.mat';
file_name='../initial_concentration.mat';
x=1;y=2;z=3;
needed_plane=[x,y];
......
#!/bin/bash
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=2
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH -t 08:00:00
#SBATCH --cpus-per-task=1
#SBATCH -o output-%j
......@@ -12,4 +12,4 @@
export OMP_NUM_THREADS=1
export OMP_PROC_BIND=spread
#ddt mpiexec --map-by socket --bind-to socket ./examples/tutorial1
ddt srun ./examples/tutorial1
ddt --connect srun ./examples/tutorial1
#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=48
#SBATCH --ntasks-per-node=2
#SBATCH --cpus-per-task=24
#SBATCH -t 00:60:00
#SBATCH -o output-%j
#SBATCH -e error-%j
......@@ -9,11 +9,12 @@
#export OMP_SCHEDULE=STATIC
export OMP_DISPLAY_ENV=true
export OMP_NUM_THREADS=48
export OMP_NUM_THREADS=24
export OMP_PROC_BIND=spread
#export OMP_PLACES="{0:1}:48:1"
export OMP_PLACES='cores(48)'
#mpiexec --map-by ppr:1:socket:pe=24 --report-bindings ./examples/tutorial1
mpiexec --report-bindings --map-by node --bind-to none ./examples/tutorial1
#export OMP_PLACES='cores(48)'
export OMP_PLACES=threads
mpiexec --map-by ppr:1:socket:pe=24 --report-bindings ./examples/tutorial1
#mpiexec --report-bindings --map-by node --bind-to none ./examples/tutorial1
#mpiexec --map-by socket --bind-to core --report-bindings ./examples/tutorial1
#mpiexec --map-by node --bind-to none --report-bindings ./examples/tutorial1
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment