[Pcx-dev-l] Reordenamento - PCx Modificado

Aurelio Ribeiro Leite de Oliveira aurelio em ime.unicamp.br
Qua Dez 11 11:55:23 BRST 2013


Prezados,

- create_LU somente existe no PCx modificado.

- Factor->Perm e Factor->InvPerm tem utilidades diferentes na primeira
fase que usa Controlada de Cholesky e na segunda que usa o precondicionador
separador.

Um abraço,

Aurelio

> Olá Daniele,
>
> segue resposta para algumas das suas perguntas. Espero que outros membros
> da
> lista lhe responda as que deixei em branco.
>
>>     *1. "Estrutura" Factor*
>
> Não existe estrutura chamada `Factor` no código do PCx. O que existe é um
> ponteiro do tipo `FactorType` chamado `Factor`.
>
>>            Dentre essas diferenças, a relevante para o reordenamento é o
>> tamanho e a função dada para os vetores Factor->Perm e Factor->InvPerm.
>> Em
>> um primeiro momento, estes são utilizados para armazenar
>> respectivamente, a
>> permutação das linhas de A e a permutação inversa dessas. Já na chamada
>> da
>> função SplitFactorType, o espaço destinado a estes é diferente e os
>> mesmos
>> possuem um outro objetivo na função Create_LU. Sendo assim, seria
>> necessário armazenar os dados destes em outros vetores antes da chamada
>> da SplitFactorType, ou se possível, adicionar outros vetores a estrutura
>> Factor com outros nomes, para guardar as reordenações.
>
> Pelo que você está falando a função `Create_LU` possui um bug pois deveria
> utilizar uma outra estrutura.
>
> O que você deve fazer é criar uma outra estrutura baseada na `FactorType`.
>
>>            Assim, surge minha primeira dúvida: onde está "localizada"
>> esta
>> estrutura e se é possível fazer alterações na mesma.
>
> A definição da estrutura `FactorType` está localizada no arquivo
> `SRC/main.h`
> junto com a grande maioria das outras estruturas.
>
>>     *2.  Função Order*
>>
>>        A outra modificação, foi que comentei o código após a chamada da
>> mínimo grau, pois eram coisas relacionadas a Fatoração de Cholesky do
>> Ng-Peyton. Aliás preciso verificar se não há outras coisas que não
>> precisam
>> ser feitas.
>
> Por favor descomente o código e adicione um condicional baseado no solver
> que
> deve ser utilizado. NÃO utilize `#ifdef`.
>
> Me avise se precisar de ajuda para isso.
>
>>   * 3. Como e onde será feito o reordenamento*
>>
>>      Aí vem a dúvida mor: como e onde será feito este reordenamento?  É
>> possível armazenar as permutações após a chamada da função order, mas
>> ainda
>> estou perdida qual o melhor momento para repassar tais informações e
>> como
>> fazê-lo. Help?
>
> Não entendi sua dúvida.
>
>>     Segue uma ideia, dentro da função Create_LU há duas rotinas
>> relacionadas a criação de ADAt, de repente passar a informação do
>> reordenamento aí e já criar ADAt reordenada... seria uma boa? Alguém que
>> trabalhe com essa parte da Create_LU que possa me dar alguma orientação?
>
> Não estou conseguindo localizar a função `Create_LU` no código que me foi
> passado. `grep -r Create_LU SRC` não retorna nenhuma ocorrência.
>
> Se precisar adicionar mais parâmetros na chamada da função Create_LU você
> deve
> criar uma nova função.
>
> Espero ter ajudado,
> Raniere
> _______________________________________________
> Pcx-dev-l mailing list
> Pcx-dev-l em listas.unicamp.br
> https://www.listas.unicamp.br/mailman/listinfo/pcx-dev-l
>
>






Mais detalhes sobre a lista de discussão Pcx-dev-l