Changeset f0ebac for src/boundary.cpp


Ignore:
Timestamp:
Jul 7, 2009, 9:12:54 AM (15 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
Children:
018741
Parents:
ce4d22
Message:

BUGFIX: Initial edge for starting triangle may be up to TWICE the sphere's radius

Find_second_point_for_tesselation() - now checks norm of vector against 2.*RADIUS

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/boundary.cpp

    rce4d22 rf0ebac  
    27082708            // check if we only have one unique point yet ...
    27092709            if (a != Candidate) {
    2710         // Calculate center of the circle with radius RADIUS through points a and Candidate
     2710              // Calculate center of the circle with radius RADIUS through points a and Candidate
    27112711              Vector OrthogonalizedOben, a_Candidate, Center;
    27122712              double distance, scaleFactor;
     
    27142714              OrthogonalizedOben.CopyVector(&Oben);
    27152715              a_Candidate.CopyVector(&(a->x));
    2716          a_Candidate.SubtractVector(&(Candidate->x));
    2717          OrthogonalizedOben.ProjectOntoPlane(&a_Candidate);
    2718          OrthogonalizedOben.Normalize();
    2719         distance = 0.5 * a_Candidate.Norm();
    2720         scaleFactor = sqrt(((RADIUS * RADIUS) - (distance * distance)));
    2721         OrthogonalizedOben.Scale(scaleFactor);
     2716              a_Candidate.SubtractVector(&(Candidate->x));
     2717              OrthogonalizedOben.ProjectOntoPlane(&a_Candidate);
     2718              OrthogonalizedOben.Normalize();
     2719              distance = 0.5 * a_Candidate.Norm();
     2720              scaleFactor = sqrt(((RADIUS * RADIUS) - (distance * distance)));
     2721              OrthogonalizedOben.Scale(scaleFactor);
    27222722
    27232723              Center.CopyVector(&(Candidate->x));
    2724         Center.AddVector(&(a->x));
    2725         Center.Scale(0.5);
    2726         Center.AddVector(&OrthogonalizedOben);
     2724              Center.AddVector(&(a->x));
     2725              Center.Scale(0.5);
     2726              Center.AddVector(&OrthogonalizedOben);
    27272727
    27282728              AngleCheck.CopyVector(&Center);
     
    27302730              norm = a_Candidate.Norm();
    27312731              // second point shall have smallest angle with respect to Oben vector
    2732               if (norm < RADIUS) {
     2732              if (norm < RADIUS*2.) {
    27332733                angle = AngleCheck.Angle(&Oben);
    27342734                if (angle < Storage[0]) {
     
    27492749          }
    27502750        } else {
    2751         cout << "Linked cell list is empty." << endl;
     2751          cout << "Linked cell list is empty." << endl;
    27522752        }
    27532753      }
Note: See TracChangeset for help on using the changeset viewer.