function [A,b] = MKP2_elektrostatika(Uzly,Trojuhelniky,Hranice,Oblasti,epsilonr,U)

epsilon0 = 8.854e-12;

% pocet uzlu
n = size(Uzly,2);

% pocet trojuhelniku
m = size(Trojuhelniky,2);

% pocet uzlu na hranici
nHranice = length(Hranice);

A = sparse(n,n); % nevhodne, lepe pouzit sparse(n,n)
b = zeros(n,1);

for k=1:m
    
    Trojuhelnikk = Trojuhelniky(:,k);
    Uzlyk = Uzly(:,Trojuhelnikk);
    
    if Oblasti(k)==1 % dielektrikum
        epsilonk = epsilon0*epsilonr;
    else
        epsilonk = epsilon0;
    end
    
    Ak = lokalni_matice_elektrostatika(Uzlyk,epsilonk);
    
    A(Trojuhelnikk,Trojuhelnikk) = A(Trojuhelnikk,Trojuhelnikk) + Ak;
    
end

% hranicni podminky: ui = 0 pro xi z Gamma
A(Hranice,:) = 0;
A(Hranice,Hranice) = speye(nHranice);
b(Hranice) = 0;

% ui = -U pro xi v OmegaMinus
TrojuhelnikyMinus = Trojuhelniky(:,Oblasti==2);
idx = TrojuhelnikyMinus(:);
nidx = length(idx);
A(idx,:) = 0;
A(idx,idx) = speye(nidx);
b(idx) = -U;

% ui = U pro xi v OmegaPlus
TrojuhelnikyPlus = Trojuhelniky(:,Oblasti==3);
idx = TrojuhelnikyPlus(:);
nidx = length(idx);
A(idx,:) = 0;
A(idx,idx) = speye(nidx);
b(idx) = U;
