started adding of wind profile
[wrf-fire-matlab.git] / femwind / femwind_solve.m
blob7723f01652146bc5de0cf47326d82021d53c3fa5
1 function [W,rate]=femwind_solve(A,X,U0,params)
2     % assemble sparse system matrix
3     nel=size(X{1})-1;
4     lambda = zeros(prod(nel+1),1); % placeholder solution
5     % F = f_assembly_fortran(A,X,U0,lambda,params);
6     [K,F,~] = sparse_assembly(A,X,U0,lambda,params);
7     if isfield(params,'femwind_fortran_test') && params.femwind_fortran_test
8         F_f=read_array('F_f');
9         err_f = big(F(:)-F_f(:))
10         if err_f > 1e-4
11              error('err_f too large')
12         end
13     end
14     
16     % dirichlet boundary conditions
17     [K,~]=apply_boundary_conditions(K,[],X);   % to K - once
18     [~,F]=apply_boundary_conditions([],F,X);   % to F - every time
20     % solve the equations
21     % [lambda,it] = sparse_solve(K,F,X,'s');
22     [lambda,it,rate,XC] = sparse_solve(K,F,X,params);
23     format long
26     % assemble final wind
27    [~,~,W] = sparse_assembly(A,X,U0,lambda,params);
28 end